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

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

commit 9c0a9c6253d7288a69c7220d20091388a903464a
Merge: 2acc4821 72592753
Author: Pepijn Noltes <[email protected]>
AuthorDate: Thu Jan 4 23:58:42 2024 +0100

    Merge branch 'master' into feature/674-improve-properties
    
    # Conflicts:
    #       libs/utils/src/array_list.c

 .github/workflows/coverage.yml                     |   2 +-
 .github/workflows/coverity-scan.yml                |   1 -
 .github/workflows/macos.yml                        |   4 +-
 .github/workflows/ubuntu.yml                       |   3 +-
 CHANGES.md                                         |   4 +
 bundles/http_admin/http_admin/src/http_admin.c     |  17 +-
 .../include/endpoint_descriptor_reader.h           |   4 +-
 .../include/endpoint_descriptor_writer.h           |   4 +-
 .../include/endpoint_discovery_poller.h            |   3 +-
 .../src/endpoint_descriptor_reader.c               |  33 +-
 .../src/endpoint_descriptor_writer.c               |   6 +-
 .../src/endpoint_discovery_poller.c                | 251 ++++---
 .../src/endpoint_discovery_server.c                |  23 +-
 .../gtest/src/rsa_tests.cc                         |   8 +-
 .../src/remote_service_admin_dfi.c                 |  34 +-
 .../src/remote_service_admin_dfi.h                 |   6 +-
 .../rsa_shm/src/rsa_shm_impl.c                     |   8 +-
 .../rsa_shm/src/rsa_shm_impl.h                     |   5 +-
 .../rsa_common/src/import_registration_impl.c      |   5 +-
 .../rsa_common/src/import_registration_impl.h      |   2 +-
 .../rsa_common/src/remote_interceptors_handler.c   |  31 +-
 .../rsa_common/src/remote_service_admin_impl.h     |   6 +-
 .../rsa_spi/include/endpoint_description.h         |   4 +-
 .../rsa_spi/include/endpoint_listener.h            |   3 -
 .../rsa_spi/include/remote_service_admin.h         |   6 +-
 .../remote_services/topology_manager/src/scope.c   |  60 +-
 .../remote_services/topology_manager/src/scope.h   |   2 +-
 .../topology_manager/src/topology_manager.c        |  12 +-
 .../topology_manager/src/topology_manager.h        |   4 +-
 .../tms_tst/disc_mock/disc_mock_activator.c        |  10 +-
 .../tms_tst/disc_mock/disc_mock_service.c          |   4 +-
 .../tms_tst/disc_mock/disc_mock_service.h          |   4 +-
 .../topology_manager/tms_tst/tms_tests.cpp         |  30 +-
 bundles/shell/remote_shell/src/remote_shell.c      |  55 +-
 bundles/shell/remote_shell/src/remote_shell.h      |   2 +-
 bundles/shell/shell_tui/gtest/CMakeLists.txt       |   1 +
 .../shell/shell_tui/gtest/src/ShellTuiTestSuite.cc |  36 +-
 bundles/shell/shell_tui/src/activator.c            |   2 +-
 bundles/shell/shell_tui/src/history.c              | 111 +--
 bundles/shell/shell_tui/src/history.h              |  26 +-
 bundles/shell/shell_tui/src/shell_tui.c            |  41 +-
 bundles/shell/shell_tui/src/shell_tui.h            |   6 +-
 cmake/Modules/FindCppUTest.cmake                   |  69 --
 conanfile.py                                       |   3 -
 examples/conan_test_package/my_rsa_activator.c     |   6 +-
 .../src/CelixBundleContextServicesTestSuite.cc     |  22 +-
 libs/framework/include/celix_api.h                 |  10 +-
 libs/framework/include_deprecated/bundle.h         |   2 -
 libs/framework/include_deprecated/bundle_context.h |   2 -
 .../framework/include_deprecated/bundle_revision.h |   2 +-
 libs/framework/include_deprecated/dm_component.h   |   4 +-
 .../include_deprecated/dm_dependency_manager.h     |   1 -
 libs/framework/include_deprecated/framework.h      |   2 +-
 libs/framework/include_deprecated/manifest.h       |   3 +-
 libs/framework/include_deprecated/module.h         |  10 -
 .../include_deprecated/service_reference.h         |   1 -
 .../include_deprecated/service_registration.h      |   1 -
 .../include_deprecated/service_registry.h          |   4 +-
 .../framework/include_deprecated/service_tracker.h |   1 -
 libs/framework/src/bundle.c                        |  66 +-
 libs/framework/src/bundle_archive.c                |   1 -
 libs/framework/src/bundle_context.c                |  20 +-
 libs/framework/src/bundle_context_private.h        |   2 +-
 libs/framework/src/bundle_private.h                |   2 +-
 libs/framework/src/dm_component_impl.c             |  14 +-
 libs/framework/src/dm_dependency_manager_impl.c    |   9 +-
 libs/framework/src/framework.c                     | 118 ++-
 libs/framework/src/framework_private.h             |  20 +-
 libs/framework/src/manifest.c                      |   6 +-
 libs/framework/src/manifest_parser.h               |   1 -
 libs/framework/src/module.c                        |  22 +-
 libs/framework/src/registry_callback_private.h     |   2 +-
 libs/framework/src/service_reference.c             |   6 +-
 libs/framework/src/service_registration.c          |  10 +-
 libs/framework/src/service_registration_private.h  |   6 +-
 libs/framework/src/service_registry.c              | 238 +++---
 libs/framework/src/service_tracker.c               |  30 +-
 libs/framework/src/service_tracker_private.h       |  18 +-
 libs/utils/CMakeLists.txt                          |  40 --
 libs/utils/benchmark/src/StringHashmapBenchmark.cc |   2 +-
 libs/utils/gtest/CMakeLists.txt                    |  16 +-
 .../src/DeprecatedHashmapTestSuite.cc}             | 789 ++++++++++----------
 .../gtest/src/IpUtilsErrorInjectionTestSuite.cc    |  47 --
 libs/utils/gtest/src/PropertiesTestSuite.cc        |  28 -
 libs/utils/include_deprecated/array_list.h         |  97 ---
 libs/utils/include_deprecated/celix_utils_api.h    |   7 +-
 libs/utils/include_deprecated/filter.h             |   1 -
 libs/utils/include_deprecated/ip_utils.h           |  52 --
 libs/utils/include_deprecated/linked_list.h        |  92 ---
 .../include_deprecated/linked_list_iterator.h      |  66 --
 libs/utils/include_deprecated/properties.h         |  75 --
 libs/utils/private/test/array_list_test.cpp        | 584 ---------------
 libs/utils/private/test/ip_utils_test.cpp          | 108 ---
 libs/utils/private/test/linked_list_test.cpp       | 796 ---------------------
 libs/utils/src/array_list.c                        | 298 +-------
 libs/utils/src/array_list_private.h                |  14 -
 libs/utils/src/hash_map.c                          |   1 -
 libs/utils/src/hash_map_private.h                  |   7 +
 libs/utils/src/ip_utils.c                          | 170 -----
 libs/utils/src/linked_list.c                       | 269 -------
 libs/utils/src/linked_list_iterator.c              | 154 ----
 libs/utils/src/linked_list_private.h               |  44 --
 libs/utils/src/properties.c                        |  53 +-
 103 files changed, 1160 insertions(+), 4263 deletions(-)

diff --cc libs/utils/src/array_list.c
index 0ebfa689,5b7a16e2..a7e2dd9f
--- a/libs/utils/src/array_list.c
+++ b/libs/utils/src/array_list.c
@@@ -28,22 -28,10 +28,16 @@@
  #include <stdio.h>
  #include <string.h>
  
- #include "array_list.h"
  #include "celix_array_list.h"
 +
  #include "array_list_private.h"
  #include "celix_build_assert.h"
 +#include "celix_err.h"
 +#include "celix_stdio_cleanup.h"
 +#include "celix_stdlib_cleanup.h"
 +
 +#define CELIX_ARRAY_LIST_DEFAULT_CAPACITY 10
  
- static celix_status_t arrayList_elementEquals(const void *a, const void *b, 
bool *equals) {
-     *equals = (a == b);
-     return CELIX_SUCCESS;
- }
- 
  static bool celix_arrayList_defaultEquals(celix_array_list_entry_t a, 
celix_array_list_entry_t b) {
      return memcmp(&a, &b, sizeof(a)) == 0;
  }
@@@ -116,283 -75,17 +81,26 @@@ static celix_status_t celix_arrayList_e
      return status;
  }
  
- unsigned int arrayList_size(array_list_pt list) {
-     return (int)list->size;
- }
- 
- bool arrayList_isEmpty(array_list_pt list) {
-     return list->size == 0;
- }
- 
- bool arrayList_contains(array_list_pt list, void * element) {
-     int index = arrayList_indexOf(list, element);
-     return index >= 0;
- }
- 
- int arrayList_indexOf(array_list_pt list, void * element) {
-     if (element == NULL) {
-         unsigned int i = 0;
-         for (i = 0; i < list->size; i++) {
-             if (list->elementData[i].voidPtrVal == NULL) {
-                 return i;
-             }
-         }
-     } else {
-         unsigned int i = 0;
-         for (i = 0; i < list->size; i++) {
-             celix_array_list_entry_t entry;
-             memset(&entry, 0, sizeof(entry));
-             entry.voidPtrVal = element;
-             bool equals = celix_arrayList_equalsForElement(list, entry, 
list->elementData[i]);
-             if (equals) {
-                 return i;
-             }
-         }
-     }
-     return -1;
- }
- 
- int arrayList_lastIndexOf(array_list_pt list, void * element) {
-     if (element == NULL) {
-         int i = 0;
-         int size = (int)list->size;
-         for (i = size - 1; i >= 0; i--) {
-             if (list->elementData[i].voidPtrVal == NULL) {
-                 return (int)i;
-             }
-         }
-     } else {
-         int i = 0;
-         int size = (int)list->size;
-         for (i = size - 1; i >= 0; i--) {
-             celix_array_list_entry_t entry;
-             memset(&entry, 0, sizeof(entry));
-             entry.voidPtrVal = element;
-             bool equals = celix_arrayList_equalsForElement(list, entry, 
list->elementData[i]);
-             if (equals) {
-                 return (int)i;
-             }
-         }
-     }
-     return -1;
- }
- 
- void * arrayList_get(array_list_pt list, unsigned int index) {
-     if (index >= list->size) {
-         return NULL;
-     }
- 
-     return list->elementData[index].voidPtrVal;
- }
- 
- void * arrayList_set(array_list_pt list, unsigned int index, void * element) {
-     void * oldElement;
-     if (index >= list->size) {
-         return NULL;
-     }
- 
-     oldElement = list->elementData[index].voidPtrVal;
-     memset(&list->elementData[index], 0, sizeof(celix_array_list_entry_t));
-     list->elementData[index].voidPtrVal = element;
-     return oldElement;
- }
- 
- bool arrayList_add(array_list_pt list, void * element) {
-     arrayList_ensureCapacity(list, (int)list->size + 1);
-     memset(&list->elementData[list->size], 0, 
sizeof(celix_array_list_entry_t));
-     list->elementData[list->size++].voidPtrVal = element;
-     return true;
- }
- 
- int arrayList_addIndex(array_list_pt list, unsigned int index, void * 
element) {
-     size_t numMoved;
-     if (index > list->size) {
-         return -1;
-     }
-     arrayList_ensureCapacity(list, (int)list->size+1);
-     numMoved = list->size - index;
-     memmove(list->elementData+(index+1), list->elementData+index, 
sizeof(celix_array_list_entry_t) * numMoved);
- 
-     list->elementData[index].voidPtrVal = element;
-     list->size++;
-     return 0;
- }
- 
- void * arrayList_remove(array_list_pt list, unsigned int index) {
-     void * oldElement;
-     size_t numMoved;
-     if (index >= list->size) {
-         return NULL;
-     }
- 
-     list->modCount++;
-     oldElement = list->elementData[index].voidPtrVal;
-     numMoved = list->size - index - 1;
-     memmove(list->elementData+index, list->elementData+index+1, 
sizeof(celix_array_list_entry_t) * numMoved);
-     memset(&list->elementData[--list->size], 0, 
sizeof(celix_array_list_entry_t));
- 
-     return oldElement;
- }
- 
- void arrayList_fastRemove(array_list_pt list, unsigned int index) {
-     size_t numMoved;
-     list->modCount++;
- 
-     numMoved = list->size - index - 1;
-     memmove(list->elementData+index, list->elementData+index+1, 
sizeof(celix_array_list_entry_t) * numMoved);
-     memset(&list->elementData[--list->size], 0, 
sizeof(celix_array_list_entry_t));
- }
- 
- bool arrayList_removeElement(array_list_pt list, void * element) {
-     if (element == NULL) {
-         unsigned int i = 0;
-         for (i = 0; i < list->size; i++) {
-             if (list->elementData[i].voidPtrVal == NULL) {
-                 arrayList_fastRemove(list, i);
-                 return true;
-             }
-         }
-     } else {
-         unsigned int i = 0;
-         for (i = 0; i < list->size; i++) {
-             celix_array_list_entry_t entry;
-             memset(&entry, 0, sizeof(entry));
-             entry.voidPtrVal = element;
-             bool equals = celix_arrayList_equalsForElement(list, entry, 
list->elementData[i]);
-             if (equals) {
-                 arrayList_fastRemove(list, i);
-                 return true;
-             }
-         }
-     }
-     return false;
- }
- 
- void arrayList_clear(array_list_pt list) {
-     celix_arrayList_clear(list);
- }
- 
- bool arrayList_addAll(array_list_pt list, array_list_pt toAdd) {
-     unsigned int i;
-     unsigned int size = arrayList_size(toAdd);
-     arrayList_ensureCapacity(list, list->size + size);
- //    memcpy(list->elementData+list->size, *toAdd->elementData, size);
- //    list->size += size;
-     for (i = 0; i < arrayList_size(toAdd); i++) {
-         arrayList_add(list, arrayList_get(toAdd, i));
-     }
-     return size != 0;
- }
- 
- array_list_pt arrayList_clone(array_list_pt list) {
-     unsigned int i;
-     array_list_pt new = NULL;
-     arrayList_create(&new);
- //    arrayList_ensureCapacity(new, list->size);
- //    memcpy(new->elementData, list->elementData, list->size);
- //    new->size = list->size;
- 
-     for (i = 0; i < arrayList_size(list); i++) {
-         arrayList_add(new, arrayList_get(list, i));
-     }
-     new->modCount = 0;
-     return new;
- }
- 
- array_list_iterator_pt arrayListIterator_create(array_list_pt list) {
-     array_list_iterator_pt iterator = (array_list_iterator_pt) 
malloc(sizeof(*iterator));
- 
-     iterator->lastReturned = -1;
-     iterator->cursor = 0;
-     iterator->list = list;
-     iterator->expectedModificationCount = list->modCount;
- 
-     return iterator;
- }
- 
- void arrayListIterator_destroy(array_list_iterator_pt iterator) {
-     iterator->lastReturned = -1;
-     iterator->cursor = 0;
-     iterator->expectedModificationCount = 0;
-     iterator->list = NULL;
-     free(iterator);
- }
- 
- bool arrayListIterator_hasNext(array_list_iterator_pt iterator) {
-     return iterator->cursor != iterator->list->size;
- }
- 
- void * arrayListIterator_next(array_list_iterator_pt iterator) {
-     void * next;
-     if (iterator->expectedModificationCount != iterator->list->modCount) {
-         return NULL;
-     }
-     next = arrayList_get(iterator->list, iterator->cursor);
-     iterator->lastReturned = iterator->cursor++;
-     return next;
- }
- 
- bool arrayListIterator_hasPrevious(array_list_iterator_pt iterator) {
-     return iterator->cursor != 0;
- }
- 
- void * arrayListIterator_previous(array_list_iterator_pt iterator) {
-     int i;
-     void * previous;
-     if (iterator->expectedModificationCount != iterator->list->modCount) {
-         return NULL;
-     }
-     i = iterator->cursor - 1;
-     previous = arrayList_get(iterator->list, i);
-     iterator->lastReturned = iterator->cursor = i;
-     return previous;
- }
- 
- void arrayListIterator_remove(array_list_iterator_pt iterator) {
-     if (iterator->lastReturned == -1) {
-         return;
-     }
-     if (iterator->expectedModificationCount != iterator->list->modCount) {
-         return;
-     }
-     if (arrayList_remove(iterator->list, iterator->lastReturned) != NULL) {
-         if (iterator->lastReturned < iterator->cursor) {
-             iterator->cursor--;
-         }
-         iterator->lastReturned = -1;
-         iterator->expectedModificationCount = iterator->list->modCount;
-     }
- }
- 
- 
- 
- 
- 
/**********************************************************************************************************************
-  
**********************************************************************************************************************
-  * Updated API
-  
**********************************************************************************************************************
-  
**********************************************************************************************************************/
- 
  celix_array_list_t* celix_arrayList_createWithOptions(const 
celix_array_list_create_options_t* opts) {
 -    celix_array_list_t *list = calloc(1, sizeof(*list));
 -    if (list != NULL) {
 -        list->capacity = 10;
 -        list->elementData = malloc(sizeof(celix_array_list_entry_t) * 
list->capacity);
 -        list->equals = opts->equalsCallback == NULL ? 
celix_arrayList_defaultEquals : opts->equalsCallback;
 -        list->simpleRemovedCallback = opts->simpleRemovedCallback;
 -        list->removedCallbackData = opts->removedCallbackData;
 -        list->removedCallback = opts->removedCallback;
 +    celix_autofree celix_array_list_t *list = calloc(1, sizeof(*list));
 +    if (!list) {
 +        celix_err_push("Failed to create array list. Out of memory.");
 +        return NULL;
      }
 -    return list;
 +
 +    list->capacity = opts->initialCapacity == 0 ? 
CELIX_ARRAY_LIST_DEFAULT_CAPACITY : opts->initialCapacity;
 +    list->elementData = malloc(sizeof(celix_array_list_entry_t) * 
list->capacity);
 +    list->equals = opts->equalsCallback == NULL ? 
celix_arrayList_defaultEquals : opts->equalsCallback;
 +    list->simpleRemovedCallback = opts->simpleRemovedCallback;
 +    list->removedCallbackData = opts->removedCallbackData;
 +    list->removedCallback = opts->removedCallback;
 +
 +    if (!list->elementData) {
 +        celix_err_push("Failed to create array list. Out of memory.");
 +        return NULL;
 +    }
 +
 +    return celix_steal_ptr(list);
  }
  
  celix_array_list_t* celix_arrayList_create() {
@@@ -449,18 -124,38 +157,18 @@@ void* celix_arrayList_get(const celix_a
      return arrayList_getEntry(list, index).voidPtrVal;
  }
  
 -int celix_arrayList_getInt(const celix_array_list_t* list, int index) { 
return arrayList_getEntry(list, index).intVal; }
 -
 -long int celix_arrayList_getLong(const celix_array_list_t* list, int index) {
 -    return arrayList_getEntry(list, index).longVal;
 -}
 -
 -unsigned int celix_arrayList_getUInt(const celix_array_list_t* list, int 
index) {
 -    return arrayList_getEntry(list, index).uintVal;
 -}
 -
 -unsigned long int celix_arrayList_getULong(const celix_array_list_t* list, 
int index) {
 -    return arrayList_getEntry(list, index).ulongVal;
 -}
 -
 -float celix_arrayList_getFloat(const celix_array_list_t* list, int index) {
 -    return arrayList_getEntry(list, index).floatVal;
 -}
 -
 -double celix_arrayList_getDouble(const celix_array_list_t* list, int index) {
 -    return arrayList_getEntry(list, index).doubleVal;
 -}
 -
 -bool celix_arrayList_getBool(const celix_array_list_t* list, int index) {
 -    return arrayList_getEntry(list, index).boolVal;
 -}
 -
 -size_t celix_arrayList_getSize(const celix_array_list_t* list, int index) {
 -    return arrayList_getEntry(list, index).sizeVal;
 -}
 +int celix_arrayList_getInt(const celix_array_list_t *list, int index) { 
return arrayList_getEntry(list, index).intVal; }
 +long int celix_arrayList_getLong(const celix_array_list_t *list, int index) { 
return arrayList_getEntry(list, index).longVal; }
 +unsigned int celix_arrayList_getUInt(const celix_array_list_t *list, int 
index) { return arrayList_getEntry(list, index).uintVal; }
 +unsigned long int celix_arrayList_getULong(const celix_array_list_t *list, 
int index) { return arrayList_getEntry(list, index).ulongVal; }
 +float celix_arrayList_getFloat(const celix_array_list_t *list, int index) { 
return arrayList_getEntry(list, index).floatVal; }
 +double celix_arrayList_getDouble(const celix_array_list_t *list, int index) { 
return arrayList_getEntry(list, index).doubleVal; }
 +bool celix_arrayList_getBool(const celix_array_list_t *list, int index) { 
return arrayList_getEntry(list, index).boolVal; }
 +size_t celix_arrayList_getSize(const celix_array_list_t *list, int index) { 
return arrayList_getEntry(list, index).sizeVal; }
 +celix_array_list_entry_t celix_arrayList_getEntry(const celix_array_list_t 
*list, int index) { return arrayList_getEntry(list, index); }
  
  static celix_status_t celix_arrayList_addEntry(celix_array_list_t *list, 
celix_array_list_entry_t entry) {
-     celix_status_t status = arrayList_ensureCapacity(list, (int)list->size + 
1);
+     celix_status_t status = celix_arrayList_ensureCapacity(list, 
(int)list->size + 1);
      if (status == CELIX_SUCCESS) {
          list->elementData[list->size++] = entry;
      }

Reply via email to