Skip to content

Commit

Permalink
CELIX-390: Refactors celix utils. Ensures that celix_utils is build b…
Browse files Browse the repository at this point in the history
…efore celix framework and does not have the celix framework as include path.
  • Loading branch information
pnoltes committed Dec 20, 2016
1 parent 950788f commit 147e8bf
Show file tree
Hide file tree
Showing 14 changed files with 58 additions and 92 deletions.
20 changes: 10 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,19 @@ include(UseDoxygen)
# Default bundle version
set(DEFAULT_VERSION 1.0.0)

## New sub project must use a buildoption to be able to enable/disable the project using the CMake Editor
## Sub projects depending on another sub project automatically enable these dependencies
## For this to work, the order off "add_subdirectory" has to be correct (ie backwards)
#utils, dfi and etcdlib are standalone
#(e.g. no dependency on celix framework
add_subdirectory(utils)
add_subdirectory(dfi)
add_subdirectory(etcdlib)

add_subdirectory(framework)

include_directories(framework/public/include)
add_subdirectory(launcher)
add_subdirectory(config_admin)
add_subdirectory(device_access)
add_subdirectory(deployment_admin)
add_subdirectory(etcdlib)
add_subdirectory(remote_services)
add_subdirectory(remote_shell)
add_subdirectory(shell_bonjour)
Expand All @@ -90,12 +96,6 @@ add_subdirectory(log_service)
#add_subdirectory(event_admin)# event_admin is unstable
add_subdirectory(dependency_manager)
add_subdirectory(dependency_manager_cxx)
#add_subdirectory(scr) scr still needs APR

add_subdirectory(launcher)
add_subdirectory(framework)
add_subdirectory(utils)
add_subdirectory(dfi)

#Example as last, because some example will check if underlining options are enabled
add_subdirectory(examples)
3 changes: 0 additions & 3 deletions cmake/CMakeCelix.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@ if (ANDROID)
add_definitions( -DANDROID )
endif ()

include_directories("framework/public/include")
include_directories(${CMAKE_CURRENT_BINARY_DIR})

include(cmake_celix/Dependencies)
include(cmake_celix/Packaging)
include(cmake_celix/PackagingLegacy)
Expand Down
2 changes: 1 addition & 1 deletion dependency_manager/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ if (DEPENDENCY_MANAGER)

include_directories("public/include")
include_directories("private/include")
include_directories("../shell/public/include")
include_directories("${PROJECT_SOURCE_DIR}/shell/public/include")
include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
target_link_libraries(dependency_manager_static celix_framework)

Expand Down
34 changes: 4 additions & 30 deletions framework/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,17 @@ if (FRAMEWORK)
private/src/attribute.c private/src/bundle.c private/src/bundle_archive.c private/src/bundle_cache.c
private/src/bundle_context.c private/src/bundle_revision.c private/src/capability.c private/src/celix_errorcodes.c
private/src/filter.c private/src/framework.c private/src/manifest.c private/src/ioapi.c
private/src/manifest_parser.c private/src/miniunz.c private/src/module.c private/src/properties.c
private/src/manifest_parser.c private/src/miniunz.c private/src/module.c
private/src/requirement.c private/src/resolver.c private/src/service_reference.c private/src/service_registration.c
private/src/service_registry.c private/src/service_tracker.c private/src/service_tracker_customizer.c
private/src/unzip.c private/src/utils.c private/src/wire.c
private/src/unzip.c private/src/wire.c
private/src/celix_log.c private/src/celix_launcher.c

private/include/attribute.h public/include/framework_exports.h

public/include/framework.h public/include/properties.h public/include/bundle_context.h public/include/bundle.h
public/include/bundle_context.h public/include/bundle.h
public/include/bundle_activator.h public/include/service_registration.h public/include/service_reference.h
public/include/bundle_archive.h public/include/utils.h public/include/module.h public/include/service_tracker.h
public/include/bundle_archive.h public/include/module.h public/include/service_tracker.h
public/include/service_tracker_customizer.h public/include/requirement.h

${IO}
Expand Down Expand Up @@ -155,7 +155,6 @@ if (FRAMEWORK)
private/mock/bundle_revision_mock.c
private/mock/resolver_mock.c
private/mock/version_mock.c
private/src/utils.c
private/src/bundle.c
private/src/celix_errorcodes.c
private/mock/celix_log_mock.c)
Expand All @@ -165,7 +164,6 @@ if (FRAMEWORK)
private/test/capability_test.cpp
private/mock/attribute_mock.c
private/mock/version_mock.c
private/src/utils.c
private/src/capability.c
private/src/celix_errorcodes.c
private/mock/celix_log_mock.c)
Expand All @@ -178,8 +176,6 @@ if (FRAMEWORK)

add_executable(filter_test
private/test/filter_test.cpp
private/src/utils.c
private/src/properties.c
private/src/filter.c
private/src/celix_errorcodes.c
private/mock/celix_log_mock.c)
Expand All @@ -200,8 +196,6 @@ if (FRAMEWORK)
private/mock/bundle_revision_mock.c
private/mock/bundle_cache_mock.c
private/mock/manifest_mock.c
private/src/utils.c
private/src/properties.c
private/src/celix_errorcodes.c
private/mock/celix_log_mock.c
private/src/framework.c)
Expand All @@ -215,7 +209,6 @@ if (FRAMEWORK)
private/src/attribute.c
private/src/capability.c
private/src/requirement.c
private/src/utils.c
private/src/manifest_parser.c
private/src/celix_errorcodes.c
private/mock/celix_log_mock.c)
Expand All @@ -224,7 +217,6 @@ if (FRAMEWORK)
add_executable(manifest_test
private/test/manifest_test.cpp
private/mock/properties_mock.c
private/src/utils.c
private/src/manifest.c
private/src/celix_errorcodes.c
private/mock/celix_log_mock.c)
Expand All @@ -242,19 +234,12 @@ if (FRAMEWORK)
# private/src/module.c)
# target_link_libraries(module_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} celix_utils pthread)

add_executable(properties_test
private/test/properties_test.cpp
private/src/utils.c
private/src/properties.c)
target_link_libraries(properties_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} celix_utils pthread)

add_executable(requirement_test
private/test/requirement_test.cpp
private/mock/attribute_mock.c
private/mock/capability_mock.c
private/mock/version_range_mock.c
private/src/requirement.c
private/src/utils.c
private/src/celix_errorcodes.c
private/mock/celix_log_mock.c)
target_link_libraries(requirement_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} celix_utils pthread)
Expand All @@ -279,16 +264,13 @@ if (FRAMEWORK)
private/mock/service_registration_mock.c
private/mock/service_registry_mock.c
private/src/service_reference.c
private/src/utils.c
private/src/celix_errorcodes.c
private/mock/celix_log_mock.c)
target_link_libraries(service_reference_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} celix_utils pthread)

add_executable(service_registration_test
private/test/service_registration_test.cpp
private/mock/service_registry_mock.c
private/src/properties.c
private/src/utils.c
private/src/service_registration.c
private/src/celix_errorcodes.c
private/mock/celix_log_mock.c)
Expand Down Expand Up @@ -327,9 +309,6 @@ if (FRAMEWORK)
# private/mock/celix_log_mock.c)
# target_link_libraries(service_tracker_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} celix_utils pthread)

add_executable(utils_test
private/test/utils_test.cpp private/src/utils.c)
target_link_libraries(utils_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} celix_utils pthread)

add_executable(wire_test
private/mock/requirement_mock.c
Expand All @@ -343,7 +322,6 @@ if (FRAMEWORK)

configure_file(private/resources-test/manifest_sections.txt ${CMAKE_BINARY_DIR}/framework/resources-test/manifest_sections.txt COPYONLY)
configure_file(private/resources-test/manifest.txt ${CMAKE_BINARY_DIR}/framework/resources-test/manifest.txt COPYONLY)
configure_file(private/resources-test/properties.txt ${CMAKE_BINARY_DIR}/framework/resources-test/properties.txt COPYONLY)

#set_target_properties(wire_test PROPERTIES COMPILE_FLAGS "-include ${CPPUTEST_INCLUDE_DIR}/CppUTest/MemoryLeakDetectorMallocMacros.h -include ${CPPUTEST_INCLUDE_DIR}/CppUTest/MemoryLeakDetectorNewMacros.h")

Expand All @@ -360,15 +338,13 @@ if (FRAMEWORK)
add_test(NAME manifest_parser_test COMMAND manifest_parser_test)
add_test(NAME manifest_test COMMAND manifest_test)
# add_test(NAME module_test COMMAND module_test)
add_test(NAME properties_test COMMAND properties_test)
add_test(NAME requirement_test COMMAND requirement_test)
# add_test(NAME resolver_test COMMAND resolver_test)
add_test(NAME service_reference_test COMMAND service_reference_test)
add_test(NAME service_registration_test COMMAND service_registration_test)
add_test(NAME service_registry_test COMMAND service_registry_test)
add_test(NAME service_tracker_customizer_test COMMAND service_tracker_customizer_test)
# add_test(NAME service_tracker_test COMMAND service_tracker_test)
add_test(NAME utils_test COMMAND utils_test)
add_test(NAME wire_test COMMAND wire_test)

SETUP_TARGET_FOR_COVERAGE(attribute_test attribute_test ${CMAKE_BINARY_DIR}/coverage/attribute_test/attribute_test)
Expand All @@ -384,15 +360,13 @@ if (FRAMEWORK)
SETUP_TARGET_FOR_COVERAGE(manifest_parser_test manifest_parser_test ${CMAKE_BINARY_DIR}/coverage/manifest_parser_test/manifest_parser_test)
SETUP_TARGET_FOR_COVERAGE(manifest_test manifest_test ${CMAKE_BINARY_DIR}/coverage/manifest_test/manifest_test)
# SETUP_TARGET_FOR_COVERAGE(module_test module_test ${CMAKE_BINARY_DIR}/coverage/module_test/module_test)
SETUP_TARGET_FOR_COVERAGE(properties_test properties_test ${CMAKE_BINARY_DIR}/coverage/properties_test/properties_test)
SETUP_TARGET_FOR_COVERAGE(requirement_test requirement_test ${CMAKE_BINARY_DIR}/coverage/requirement_test/requirement_test)
# SETUP_TARGET_FOR_COVERAGE(resolver_test resolver_test ${CMAKE_BINARY_DIR}/coverage/resolver_test/resolver_test)
SETUP_TARGET_FOR_COVERAGE(service_reference_test service_reference_test ${CMAKE_BINARY_DIR}/coverage/service_reference_test/service_reference_test)
SETUP_TARGET_FOR_COVERAGE(service_registration_test service_registration_test ${CMAKE_BINARY_DIR}/coverage/service_registration_test/service_registration_test)
SETUP_TARGET_FOR_COVERAGE(service_registry_test service_registry_test ${CMAKE_BINARY_DIR}/coverage/service_registry_test/service_registry_test)
SETUP_TARGET_FOR_COVERAGE(service_tracker_customizer_test service_tracker_customizer_test ${CMAKE_BINARY_DIR}/coverage/service_tracker_customizer_test/service_tracker_customizer_test)
# SETUP_TARGET_FOR_COVERAGE(service_tracker_test service_tracker_test ${CMAKE_BINARY_DIR}/coverage/service_tracker_test/service_tracker_test)
SETUP_TARGET_FOR_COVERAGE(utils_test utils_test ${CMAKE_BINARY_DIR}/coverage/utils_test/utils_test)
SETUP_TARGET_FOR_COVERAGE(wire_test wire_test ${CMAKE_BINARY_DIR}/coverage/wire_test/wire_test)

endif (ENABLE_TESTING AND FRAMEWORK_TESTS)
Expand Down
45 changes: 20 additions & 25 deletions utils/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,41 +19,24 @@ celix_subproject(UTILS "Option to build the utilities library" ON)
if (UTILS)
cmake_minimum_required(VERSION 2.6)

if (ANDROID)
add_definitions(-DUSE_FILE32API)
#aux_source_directory("private/src" SRC)
endif ()

include_directories("private/include")
include_directories("public/include")
add_library(celix_utils SHARED
private/src/array_list.c
public/include/array_list.h
private/include/array_list_private.h

private/src/hash_map.c
public/include/hash_map.h
private/include/hash_map_private.h

private/src/linked_list.c
private/src/linked_list_iterator.c
public/include/linked_list.h
public/include/linked_list_iterator.h
private/include/linked_list_private.h

public/include/exports.h

private/src/celix_threads.c
public/include/celix_threads.h

private/src/version.c
private/include/version_private.h
public/include/version.h

private/src/version_range.c
private/include/version_range_private.h
public/include/version_range.h

private/src/thpool.c
public/include/thpool.h
)
private/src/properties.c
private/src/utils.c
)

set_target_properties(celix_utils PROPERTIES "SOVERSION" 2)

Expand All @@ -79,8 +62,8 @@ if (UTILS)

include_directories(${CUNIT_INCLUDE_DIRS})
include_directories(${CPPUTEST_INCLUDE_DIR})
include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
include_directories("${PROJECT_SOURCE_DIR}/utils/private/include")
include_directories(public/include)
include_directories(utils/private/include)

add_executable(hash_map_test private/test/hash_map_test.cpp)
target_link_libraries(hash_map_test celix_utils ${CPPUTEST_LIBRARY} pthread)
Expand All @@ -96,17 +79,29 @@ if (UTILS)
add_executable(thread_pool_test private/test/thread_pool_test.cpp)
target_link_libraries(thread_pool_test celix_utils ${CPPUTEST_LIBRARY} pthread)

add_executable(properties_test private/test/properties_test.cpp)
target_link_libraries(properties_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} celix_utils pthread)

add_executable(utils_test private/test/utils_test.cpp)
target_link_libraries(utils_test ${CPPUTEST_LIBRARY} celix_utils pthread)

configure_file(private/resources-test/properties.txt ${CMAKE_BINARY_DIR}/utils/resources-test/properties.txt COPYONLY)

add_test(NAME run_array_list_test COMMAND array_list_test)
add_test(NAME run_hash_map_test COMMAND hash_map_test)
add_test(NAME run_celix_threads_test COMMAND celix_threads_test)
add_test(NAME run_thread_pool_test COMMAND thread_pool_test)
add_test(NAME run_linked_list_test COMMAND linked_list_test)
add_test(NAME run_properties_test COMMAND properties_test)
add_test(NAME run_utils_test COMMAND utils_test)

SETUP_TARGET_FOR_COVERAGE(array_list_test array_list_test ${CMAKE_BINARY_DIR}/coverage/array_list_test/array_list_test)
SETUP_TARGET_FOR_COVERAGE(hash_map hash_map_test ${CMAKE_BINARY_DIR}/coverage/hash_map_test/hash_map_test)
SETUP_TARGET_FOR_COVERAGE(celix_threads_test celix_threads_test ${CMAKE_BINARY_DIR}/coverage/celix_threads_test/celix_threads_test)
SETUP_TARGET_FOR_COVERAGE(thread_pool_test thread_pool_test ${CMAKE_BINARY_DIR}/coverage/thread_pool_test/thread_pool_test)
SETUP_TARGET_FOR_COVERAGE(linked_list_test linked_list_test ${CMAKE_BINARY_DIR}/coverage/linked_list_test/linked_list_test)
SETUP_TARGET_FOR_COVERAGE(properties_test properties_test ${CMAKE_BINARY_DIR}/coverage/properties_test/properties_test)
SETUP_TARGET_FOR_COVERAGE(utils_test utils_test ${CMAKE_BINARY_DIR}/coverage/utils_test/utils_test)

endif(ENABLE_TESTING AND UTILS-TESTS)
endif (UTILS)
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ properties_pt properties_load(const char* filename) {
return props;
}

FRAMEWORK_EXPORT properties_pt properties_loadWithStream(FILE *file) {
properties_pt properties_loadWithStream(FILE *file) {
properties_pt props = NULL;


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ celix_status_t utils_isNumeric(const char *number, bool *ret) {
}


FRAMEWORK_EXPORT int utils_compareServiceIdsAndRanking(unsigned long servId, long servRank, unsigned long otherServId, long otherServRank) {
int utils_compareServiceIdsAndRanking(unsigned long servId, long servRank, unsigned long otherServId, long otherServRank) {
int result;

if (servId == otherServId) {
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
#include <stddef.h>
#include <errno.h>

#include "framework_exports.h"
#include "exports.h"

/*!
* Helper macro which check the current status and executes the provided expression if the
Expand Down Expand Up @@ -62,7 +62,7 @@ typedef int celix_status_t;
* Return a readable string for the given error code.
*
*/
FRAMEWORK_EXPORT char *celix_strerror(celix_status_t errorcode, char *buffer, size_t bufferSize);
UTILS_EXPORT char *celix_strerror(celix_status_t errorcode, char *buffer, size_t bufferSize);

/*!
* Error code indicating successful execution of the function.
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -30,22 +30,22 @@
#include <stdio.h>

#include "hash_map.h"
#include "framework_exports.h"
#include "exports.h"
#include "celix_errno.h"

typedef hash_map_pt properties_pt;

FRAMEWORK_EXPORT properties_pt properties_create(void);
FRAMEWORK_EXPORT void properties_destroy(properties_pt properties);
FRAMEWORK_EXPORT properties_pt properties_load(const char* filename);
FRAMEWORK_EXPORT properties_pt properties_loadWithStream(FILE *stream);
FRAMEWORK_EXPORT void properties_store(properties_pt properties, const char* file, const char* header);
UTILS_EXPORT properties_pt properties_create(void);
UTILS_EXPORT void properties_destroy(properties_pt properties);
UTILS_EXPORT properties_pt properties_load(const char* filename);
UTILS_EXPORT properties_pt properties_loadWithStream(FILE *stream);
UTILS_EXPORT void properties_store(properties_pt properties, const char* file, const char* header);

FRAMEWORK_EXPORT const char* properties_get(properties_pt properties, const char* key);
FRAMEWORK_EXPORT const char* properties_getWithDefault(properties_pt properties, const char* key, const char* defaultValue);
FRAMEWORK_EXPORT void properties_set(properties_pt properties, const char* key, const char* value);
UTILS_EXPORT const char* properties_get(properties_pt properties, const char* key);
UTILS_EXPORT const char* properties_getWithDefault(properties_pt properties, const char* key, const char* defaultValue);
UTILS_EXPORT void properties_set(properties_pt properties, const char* key, const char* value);

FRAMEWORK_EXPORT celix_status_t properties_copy(properties_pt properties, properties_pt *copy);
UTILS_EXPORT celix_status_t properties_copy(properties_pt properties, properties_pt *copy);

#define PROPERTIES_FOR_EACH(props, key) \
for(hash_map_iterator_t iter = hashMapIterator_construct(props); \
Expand Down
Loading

0 comments on commit 147e8bf

Please sign in to comment.