You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2018/01/30 19:30:28 UTC
[44/54] [abbrv] celix git commit: Merge branch 'release/2.1.0' into
feature/CELIX-417-cmake-refactor
Merge branch 'release/2.1.0' into feature/CELIX-417-cmake-refactor
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/0ea8de64
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/0ea8de64
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/0ea8de64
Branch: refs/heads/develop
Commit: 0ea8de64a3aab5a1ee4e2a11edfad1c1ac3e0d84
Parents: 81804e0 353ac0d
Author: Pepijn Noltes <pe...@gmail.com>
Authored: Wed Jan 24 22:06:37 2018 +0100
Committer: Pepijn Noltes <pe...@gmail.com>
Committed: Wed Jan 24 22:06:37 2018 +0100
----------------------------------------------------------------------
CHANGES | 215 ----------------
CHANGES.md | 252 +++++++++++++++++++
README.md | 17 ++
RELEASE_NOTES | 24 +-
cmake/cmake_celix/BundlePackaging.cmake | 26 +-
cmake/cmake_celix/DeployPackaging.cmake | 8 +-
config_admin/CMakeLists.txt | 2 +-
.../example_test/CMakeLists.txt | 2 +-
.../example_test2/CMakeLists.txt | 2 +-
config_admin/example/CMakeLists.txt | 2 +-
config_admin/readme.md | 17 ++
config_admin/service/CMakeLists.txt | 2 +-
dependency_manager/CMakeLists.txt | 34 ++-
dependency_manager/readme.md | 17 ++
dependency_manager_cxx/CMakeLists.txt | 17 +-
dependency_manager_cxx/readme.md | 17 ++
deployment_admin/CMakeLists.txt | 6 +-
deployment_admin/README.md | 17 ++
device_access/README.md | 17 ++
device_access/device_access/CMakeLists.txt | 4 +-
device_access/driver_locator/CMakeLists.txt | 4 +-
device_access/example/CMakeLists.txt | 4 +-
.../example/base_driver/CMakeLists.txt | 2 +-
.../example/consuming_driver/CMakeLists.txt | 2 +-
.../example/refining_driver/CMakeLists.txt | 2 +-
dfi/CMakeLists.txt | 45 ++--
documents/building/readme.md | 31 ++-
documents/cmake_commands/readme.md | 23 +-
.../getting_started/creating_a_simple_bundle.md | 128 ++++++----
.../getting_started/getting_started_img3.png | Bin 127686 -> 0 bytes
documents/getting_started/readme.md | 22 +-
.../getting_started/using_services_with_c.md | 125 +++++----
.../getting_started/using_services_with_cxx.md | 17 ++
documents/intro/readme.md | 17 ++
documents/roadmap/api_v3/readme.md | 19 +-
documents/roadmap/improvement_ideas.md | 19 +-
documents/roadmap/roadmap.md | 17 ++
documents/subprojects/readme.md | 17 ++
etcdlib/README.md | 17 ++
event_admin/CMakeLists.txt | 6 +-
event_admin/event_admin/CMakeLists.txt | 4 +-
event_admin/event_handler/CMakeLists.txt | 4 +-
event_admin/event_publisher/CMakeLists.txt | 4 +-
examples/dm_example/CMakeLists.txt | 2 +-
examples/dm_example/api/CMakeLists.txt | 2 +-
examples/dm_example/phase1/CMakeLists.txt | 2 +-
examples/dm_example/phase2a/CMakeLists.txt | 2 +-
examples/dm_example/phase2b/CMakeLists.txt | 2 +-
examples/dm_example/phase3/CMakeLists.txt | 2 +-
examples/dm_example_cxx/phase1/CMakeLists.txt | 2 +-
examples/dm_example_cxx/phase2/CMakeLists.txt | 4 +-
examples/dm_example_cxx/phase3/CMakeLists.txt | 2 +-
.../phase3_locking/CMakeLists.txt | 2 +-
examples/hello_world/CMakeLists.txt | 10 +-
examples/hello_world_test/CMakeLists.txt | 18 +-
examples/log_service_example/CMakeLists.txt | 4 +-
examples/mongoose/CMakeLists.txt | 6 +-
examples/service_hook_example/CMakeLists.txt | 6 +-
examples/services_example_c/CMakeLists.txt | 2 +-
examples/services_example_c/bar/CMakeLists.txt | 2 +-
examples/services_example_c/foo1/CMakeLists.txt | 2 +-
examples/services_example_c/foo2/CMakeLists.txt | 2 +-
examples/services_example_cxx/CMakeLists.txt | 2 +-
.../services_example_cxx/bar/CMakeLists.txt | 2 +-
.../services_example_cxx/baz/CMakeLists.txt | 2 +-
.../services_example_cxx/foo/CMakeLists.txt | 2 +-
.../test_bundle1/CMakeLists.txt | 2 +-
framework/src/celix_launcher.c | 12 +-
launcher/README.md | 17 ++
log_service/CMakeLists.txt | 5 +-
log_writer/log_writer/CMakeLists.txt | 2 +-
log_writer/log_writer_stdout/CMakeLists.txt | 6 +-
log_writer/log_writer_syslog/CMakeLists.txt | 4 +-
pubsub/CMakeLists.txt | 2 +-
pubsub/README.md | 17 ++
pubsub/examples/CMakeLists.txt | 26 +-
pubsub/examples/keys/README.md | 17 ++
.../examples/mp_pubsub/publisher/CMakeLists.txt | 8 +-
.../mp_pubsub/subscriber/CMakeLists.txt | 10 +-
pubsub/examples/pubsub/publisher/CMakeLists.txt | 10 +-
.../examples/pubsub/publisher2/CMakeLists.txt | 10 +-
.../examples/pubsub/subscriber/CMakeLists.txt | 12 +-
pubsub/mock/CMakeLists.txt | 8 +-
pubsub/pubsub_admin_udp_mc/CMakeLists.txt | 4 +-
pubsub/pubsub_admin_udp_mc/README.md | 17 ++
pubsub/pubsub_admin_zmq/CMakeLists.txt | 4 +-
pubsub/pubsub_admin_zmq/src/pubsub_admin_impl.c | 2 +-
pubsub/pubsub_admin_zmq/src/topic_publication.c | 2 +-
pubsub/pubsub_admin_zmq/src/topic_publication.h | 2 +-
.../pubsub_admin_zmq/src/topic_subscription.c | 4 +-
pubsub/pubsub_discovery/CMakeLists.txt | 4 +-
pubsub/pubsub_serializer_json/CMakeLists.txt | 4 +-
pubsub/pubsub_spi/CMakeLists.txt | 13 +-
pubsub/pubsub_topology_manager/CMakeLists.txt | 6 +-
pubsub/test/CMakeLists.txt | 16 +-
rat-excludes.txt | 7 +-
remote_services/README.md | 17 ++
remote_services/civetweb/CMakeLists.txt | 2 +-
remote_services/discovery_common/CMakeLists.txt | 2 +-
.../discovery_configured/CMakeLists.txt | 4 +-
remote_services/discovery_etcd/CMakeLists.txt | 4 +-
remote_services/discovery_etcd/README.md | 17 ++
remote_services/discovery_shm/CMakeLists.txt | 4 +-
remote_services/examples/CMakeLists.txt | 12 +-
.../examples/calculator_service/CMakeLists.txt | 4 +-
.../examples/calculator_shell/CMakeLists.txt | 4 +-
.../remote_service_admin_dfi/CMakeLists.txt | 4 +-
.../test/CMakeLists.txt | 4 +-
.../remote_service_admin_shm/CMakeLists.txt | 4 +-
.../remote_services_api/CMakeLists.txt | 8 +-
remote_services/rsa_common/CMakeLists.txt | 11 +-
remote_services/topology_manager/CMakeLists.txt | 4 +-
remote_services/topology_manager/README.md | 17 ++
.../tms_tst/bundle/CMakeLists.txt | 4 +-
.../tms_tst/disc_mock/CMakeLists.txt | 2 +-
remote_shell/CMakeLists.txt | 6 +-
remote_shell/README.md | 17 ++
shell/CMakeLists.txt | 4 +-
shell/README.md | 17 ++
shell_bonjour/CMakeLists.txt | 4 +-
shell_tui/CMakeLists.txt | 4 +-
shell_tui/README.md | 17 ++
utils/README.md | 17 ++
123 files changed, 1162 insertions(+), 614 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/cmake/cmake_celix/BundlePackaging.cmake
----------------------------------------------------------------------
diff --cc cmake/cmake_celix/BundlePackaging.cmake
index 8e1755c,e336dbb..44e7382
--- a/cmake/cmake_celix/BundlePackaging.cmake
+++ b/cmake/cmake_celix/BundlePackaging.cmake
@@@ -88,9 -88,8 +88,9 @@@ function(check_bundle BUNDLE
endif()
endfunction()
+
function(add_bundle)
- #message(DEPRECATION"add_bundle is DEPRECATION, use add_celix_bundle instead.")
- message(DEPRECATION "add_bundle is DEPRECATION, use add_celix_bundle instead.")
++ message(DEPRECATION "add_bundle is deprecated, use add_celix_bundle instead.")
add_celix_bundle(${ARGN})
endfunction()
function(add_celix_bundle)
@@@ -278,7 -261,7 +278,7 @@@
endfunction()
function(bundle_export_libs)
- #message(DEPRECATION"bundle_export_libs is DEPRECATION, use celix_bundle_export_libs instead.")
- message(DEPRECATION "bundle_export_libs is DEPRECATION, use celix_bundle_export_libs instead.")
++ message(DEPRECATION "bundle_export_libs is deprecated, use celix_bundle_export_libs instead.")
celix_bundle_export_libs(${ARGN})
endfunction()
function(celix_bundle_export_libs)
@@@ -288,7 -271,7 +288,7 @@@
endfunction()
function(bundle_private_libs)
- #message(DEPRECATION"bundle_private_libs is DEPRECATION, use celix_bundle_private_libs instead.")
- message(DEPRECATION "bundle_private_libs is DEPRECATION, use celix_bundle_private_libs instead.")
++ message(DEPRECATION "bundle_private_libs is deprecated, use celix_bundle_private_libs instead.")
celix_bundle_private_libs(${ARGN})
endfunction()
function(celix_bundle_private_libs)
@@@ -298,7 -281,7 +298,7 @@@
endfunction()
function(bundle_libs)
- #message(DEPRECATION"bundle_libs is DEPRECATION, use celix_bundle_libs instead.")
- message(DEPRECATION "bundle_libs is DEPRECATION, use celix_bundle_libs instead.")
++ message(DEPRECATION "bundle_libs is deprecated, use celix_bundle_libs instead.")
celix_bundle_libs(${ARGN})
endfunction()
function(celix_bundle_libs)
@@@ -365,7 -348,7 +365,7 @@@
endfunction()
function(bundle_import_libs)
- #message(DEPRECATION"bundle_import_libs is DEPRECATION, use celix_bundle_import_libs instead.")
- message(DEPRECATION "bundle_import_libs is DEPRECATION, use celix_bundle_import_libs instead.")
++ message(DEPRECATION "bundle_import_libs is deprecated, use celix_bundle_import_libs instead.")
celix_bundle_import_libs(${ARGN})
endfunction()
function(celix_bundle_import_libs)
@@@ -395,7 -378,7 +395,7 @@@
endfunction()
function(bundle_files)
- #message(DEPRECATION"bundle_files is DEPRECATION, use celix_bundle_files instead.")
- message(DEPRECATION "bundle_files is DEPRECATION, use celix_bundle_files instead.")
++ message(DEPRECATION "bundle_files is deprecated, use celix_bundle_files instead.")
celix_bundle_files(${ARGN})
endfunction()
function(celix_bundle_files)
@@@ -422,7 -405,7 +422,7 @@@
endfunction()
function(bundle_headers)
- #message(DEPRECATION"bundle_headers is DEPRECATION, use celix_bundle_headers instead.")
- message(DEPRECATION "bundle_headers is DEPRECATION, use celix_bundle_headers instead.")
++ message(DEPRECATION "bundle_headers is deprecated, use celix_bundle_headers instead.")
celix_bundle_headers(${ARGN})
endfunction()
function(celix_bundle_headers)
@@@ -441,7 -424,7 +441,7 @@@
endfunction()
function(bundle_symbolic_name)
- #message(DEPRECATION"bundle_symbolic_name is DEPRECATION, use celix_bundle_symbolic_name instead.")
- message(DEPRECATION "bundle_symbolic_name is DEPRECATION, use celix_bundle_symbolic_name instead.")
++ message(DEPRECATION "bundle_symbolic_name is deprecated, use celix_bundle_symbolic_name instead.")
celix_bundle_symbolic_name(${ARGN})
endfunction()
function(celix_bundle_symbolic_name BUNDLE SYMBOLIC_NAME)
@@@ -449,7 -432,7 +449,7 @@@
endfunction()
function(bundle_name)
- #message(DEPRECATION"bundle_name is DEPRECATION, use celix_bundle_name instead.")
- message(DEPRECATION "bundle_name is DEPRECATION, use celix_bundle_name instead.")
++ message(DEPRECATION "bundle_name is deprecated, use celix_bundle_name instead.")
celix_bundle_symbolic_name(${ARGN})
endfunction()
function(celix_bundle_name BUNDLE NAME)
@@@ -457,7 -440,7 +457,7 @@@
endfunction()
function(bundle_version)
- #message(DEPRECATION"bundle_version is DEPRECATION, use celix_bundle_version instead.")
- message(DEPRECATION "bundle_version is DEPRECATION, use celix_bundle_version instead.")
++ message(DEPRECATION "bundle_version is deprecated, use celix_bundle_version instead.")
celix_bundle_symbolic_name(${ARGN})
endfunction()
function(celix_bundle_version BUNDLE VERSION)
@@@ -465,7 -448,7 +465,7 @@@
endfunction()
function(bundle_description)
- #message(DEPRECATION"bundle_description is DEPRECATION, use celix_bundle_description instead.")
- message(DEPRECATION "bundle_description is DEPRECATION, use celix_bundle_description instead.")
++ message(DEPRECATION "bundle_description is deprecated, use celix_bundle_description instead.")
celix_bundle_symbolic_name(${ARGN})
endfunction()
function(celix_bundle_description BUNDLE DESC)
@@@ -473,7 -456,7 +473,7 @@@
endfunction()
function(install_bundle)
- #message(DEPRECATION"install_bundle is DEPRECATION, use install_celix_bundle instead.")
- message(DEPRECATION "install_bundle is DEPRECATION, use install_celix_bundle instead.")
++ message(DEPRECATION "install_bundle is deprecated, use install_celix_bundle instead.")
install_celix_bundle(${ARGN})
endfunction()
function(install_celix_bundle)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/cmake/cmake_celix/DeployPackaging.cmake
----------------------------------------------------------------------
diff --cc cmake/cmake_celix/DeployPackaging.cmake
index 2065b47,707201f..b7880f4
--- a/cmake/cmake_celix/DeployPackaging.cmake
+++ b/cmake/cmake_celix/DeployPackaging.cmake
@@@ -28,9 -28,10 +28,9 @@@ set_directory_properties(PROPERTIES ADD
#####
function(add_deploy)
- #message(DEPRECATION "deploy_bundles_dir is depecrated, use celix_container_bundles_dir instead.")
- message(DEPRECATION "add_deploy is depecrated, use add_celix_container instead.")
++ message(DEPRECATION "deploy_bundles_dir is depecrated, use celix_container_bundles_dir instead.")
add_celix_container(${ARGN})
endfunction()
-
function(add_celix_container)
list(GET ARGN 0 CONTAINER_TARGET)
list(REMOVE_AT ARGN 0)
@@@ -212,8 -219,9 +212,8 @@@ endfunction(
#NOTE can be used for drivers/proxies/endpoints bundle dirs
-
function(deploy_bundles_dir)
- #message(DEPRECATION "deploy_bundles_dir is depecrated, use celix_container_bundles_dir instead.")
+ message(DEPRECATION "deploy_bundles_dir is depecrated, use celix_container_bundles_dir instead.")
celix_container_bundles_dir(${ARGN})
endfunction()
function(celix_container_bundles_dir)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/config_admin_tst/example_test/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/config_admin_tst/example_test2/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/example/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/config_admin/service/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dependency_manager/CMakeLists.txt
----------------------------------------------------------------------
diff --cc dependency_manager/CMakeLists.txt
index 477a163,952cfe7..f98701e
--- a/dependency_manager/CMakeLists.txt
+++ b/dependency_manager/CMakeLists.txt
@@@ -30,70 -30,63 +30,64 @@@ if (DEPENDENCY_MANAGER
endif(CMAKE_UNAME)
endif(UNIX AND NOT WIN32)
- add_celix_bundle(dm_shell
- SYMBOLIC_NAME "apache_celix_dm_shell"
- VERSION "1.0.0"
- NAME "Apache Celix DM Shell Commands"
- SOURCES
- private/src/dm_shell_activator
- private/src/dm_shell_list_command
- )
- target_link_libraries(dm_shell celix_framework celix_utils)
-
-
add_library(dependency_manager_static STATIC
- private/src/dm_component_impl
- private/src/dm_service_dependency
- private/src/dm_event
- private/src/dm_dependency_manager_impl
- private/src/dm_activator
+ src/dm_component_impl
+ src/dm_service_dependency
+ src/dm_event
+ src/dm_dependency_manager_impl
+ src/dm_activator
)
- set_target_properties(dependency_manager_static PROPERTIES SOVERSION 1)
- set_target_properties(dependency_manager_static PROPERTIES VERSION 1.1.0)
++ set_target_properties(dependency_manager_static PROPERTIES OUTPUT_NAME "celix_dependency_manager_static")
+ target_link_libraries(dependency_manager_static Celix::framework)
+ target_compile_options(dependency_manager_static PRIVATE ${DM_COMP_OPT})
add_library(dependency_manager_so SHARED
- private/src/dm_component_impl
- private/src/dm_service_dependency
- private/src/dm_event
- private/src/dm_dependency_manager_impl
- private/src/dm_activator
+ src/dm_component_impl
+ src/dm_service_dependency
+ src/dm_event
+ src/dm_dependency_manager_impl
+ src/dm_activator
)
++ set_target_properties(dependency_manager_so PROPERTIES OUTPUT_NAME "celix_dependency_manager_so")
set_target_properties(dependency_manager_so PROPERTIES SOVERSION 1)
if (APPLE)
- target_link_libraries(dependency_manager_so celix_framework "-undefined dynamic_lookup")
+ target_link_libraries(dependency_manager_so Celix::framework "-undefined dynamic_lookup")
else()
- target_link_libraries(dependency_manager_so celix_framework)
+ target_link_libraries(dependency_manager_so Celix::framework)
endif()
- target_include_directories(dependency_manager_static PUBLIC api)
- include_directories("public/include")
- include_directories("private/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)
-
- install(
- FILES
- public/include/dm_activator.h
- private/src/dm_activator.c
- public/include/dm_component.h
- public/include/dm_dependency_manager.h
- public/include/dm_service_dependency.h
- public/include/dm_info.h
- DESTINATION
- include/celix/dependency_manager
- COMPONENT
- dependency_manager
- )
++ target_include_directories(dependency_manager_static PUBLIC
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
++ $<INSTALL_INTERFACE:include/celix/dependency_manager>
++ )
+ target_include_directories(dependency_manager_static PRIVATE src)
- target_include_directories(dependency_manager_so PUBLIC api)
++ target_include_directories(dependency_manager_so PUBLIC
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
++ $<INSTALL_INTERFACE:include/celix/dependency_manager>
++ )
+ target_include_directories(dependency_manager_so PRIVATE src)
+
- add_bundle(dm_shell
++ add_celix_bundle(dm_shell
+ SYMBOLIC_NAME "apache_celix_dm_shell"
+ VERSION "1.0.0"
+ NAME "Apache Celix DM Shell Commands"
+ SOURCES
+ src/dm_shell_activator
+ src/dm_shell_list_command
+ )
+ target_include_directories(dm_shell PRIVATE api src)
+ target_link_libraries(dm_shell PRIVATE Celix::shell_api)
+
- #TODO check
- # install(
- # FILES
- # api/dm_activator.h
- # src/dm_activator.c
- # api/dm_component.h
- # api/dm_dependency_manager.h
- # apidm_service_dependency.h
- # apidm_info.h
- # DESTINATION
- # include/celix/dependency_manager
- # COMPONENT
- # dependency_manager
- # )
- install_bundle(dm_shell)
- install(TARGETS dependency_manager_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager)
- install(TARGETS dependency_manager_so DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager)
+ install_celix_bundle(dm_shell)
- install(TARGETS dependency_manager_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager)
- install(TARGETS dependency_manager_so DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager)
++ install(TARGETS dependency_manager_so dependency_manager_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager)
++ install(DIRECTORY api/ DESTINATION include/celix/dependency_manager COMPONENT dependency_manager)
+
+ unset(DM_COMP_OPT)
+
+ #Setup target aliases to match external usage
+ add_library(Celix::dm_shell ALIAS dm_shell)
+ add_library(Celix::dependency_manager_static ALIAS dependency_manager_static)
+ add_library(Celix::dependency_manager_so ALIAS dependency_manager_so)
endif (DEPENDENCY_MANAGER)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dependency_manager/readme.md
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dependency_manager_cxx/CMakeLists.txt
----------------------------------------------------------------------
diff --cc dependency_manager_cxx/CMakeLists.txt
index 65c158d,55b02ca..5b7580a
--- a/dependency_manager_cxx/CMakeLists.txt
+++ b/dependency_manager_cxx/CMakeLists.txt
@@@ -29,36 -29,37 +29,35 @@@ if (DEPENDENCY_MANAGER_CXX
endif(CMAKE_UNAME)
endif(UNIX AND NOT WIN32)
- include_directories(
- include
- ${PROJECT_SOURCE_DIR}/dependency_manager/public/include
- ${PROJECT_SOURCE_DIR}/dependency_manager/private/include
- ${PROJECT_SOURCE_DIR}/utils/public/include
- )
-
add_library(dependency_manager_cxx_static STATIC
- ${CMAKE_SOURCE_DIR}/dependency_manager/private/src/dm_component_impl
- ${CMAKE_SOURCE_DIR}/dependency_manager/private/src/dm_service_dependency
- ${CMAKE_SOURCE_DIR}/dependency_manager/private/src/dm_event
- ${CMAKE_SOURCE_DIR}/dependency_manager/private/src/dm_dependency_manager_impl
+ ${CMAKE_SOURCE_DIR}/dependency_manager/src/dm_component_impl
+ ${CMAKE_SOURCE_DIR}/dependency_manager/src/dm_service_dependency
+ ${CMAKE_SOURCE_DIR}/dependency_manager/src/dm_event
+ ${CMAKE_SOURCE_DIR}/dependency_manager/src/dm_dependency_manager_impl
src/dm_activator.cc
)
- target_include_directories(dependency_manager_cxx_static PUBLIC include ${CMAKE_SOURCE_DIR}/dependency_manager/api)
- set_target_properties(dependency_manager_cxx_static PROPERTIES SOVERSION 1)
- set_target_properties(dependency_manager_cxx_static PROPERTIES VERSION 2.0.0)
++ set_target_properties(dependency_manager_cxx_static PROPERTIES OUTPUT_NAME "celix_dependency_manager_cxx_static")
++ target_include_directories(dependency_manager_cxx_static PUBLIC
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
++ $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/dependency_manager/api>
++ $<INSTALL_INTERFACE:include/celix/dependency_manager_cxx>
++ $<INSTALL_INTERFACE:include/celix/dependency_manager>
++ )
+ target_include_directories(dependency_manager_cxx_static PRIVATE src)
+ target_compile_options(dependency_manager_cxx_static PRIVATE ${DM_COMP_OPT})
if (APPLE)
- target_link_libraries(dependency_manager_cxx_static celix_framework "-undefined dynamic_lookup")
+ target_link_libraries(dependency_manager_cxx_static Celix::framework "-undefined dynamic_lookup")
else()
- target_link_libraries(dependency_manager_cxx_static celix_framework)
+ target_link_libraries(dependency_manager_cxx_static Celix::framework)
endif()
-- install(
-- DIRECTORY
-- include/celix
-- DESTINATION
-- include/celix/dependency_manager_cxx
-- COMPONENT
-- dependency_manager_cxx
-- )
install(TARGETS dependency_manager_cxx_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dependency_manager_cxx)
++ install(DIRECTORY include DESTINATION include/celix/dependency_manager_cxx COMPONENT dependency_manager_cxx)
+
+ unset(DM_COMP_OPT)
+
+ #Setup target aliases to match external usage
+ add_library(Celix::dependency_manager_cxx_static ALIAS dependency_manager_cxx_static)
endif (DEPENDENCY_MANAGER_CXX)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dependency_manager_cxx/readme.md
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/deployment_admin/CMakeLists.txt
----------------------------------------------------------------------
diff --cc deployment_admin/CMakeLists.txt
index 3eb38ec,51fe2ba..8d74b1f
--- a/deployment_admin/CMakeLists.txt
+++ b/deployment_admin/CMakeLists.txt
@@@ -20,44 -20,52 +20,44 @@@ if (DEPLOYMENT_ADMIN
find_package(CURL REQUIRED)
find_package(UUID REQUIRED)
+ find_package(ZLIB REQUIRED)
- add_definitions(-DUSE_FILE32API)
+ add_library(deployment_admin_api INTERFACE)
+ target_include_directories(deployment_admin_api INTERFACE api)
- add_bundle(deployment_admin
- include_directories("${CURL_INCLUDE_DIR}")
- include_directories("${UUID_INCLUDE_DIR}")
- include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
- include_directories("${PROJECT_SOURCE_DIR}/deployment_admin/private/include")
- include_directories("${PROJECT_SOURCE_DIR}/deployment_admin/public/include")
-
+ add_celix_bundle(deployment_admin
SYMBOLIC_NAME "apache_celix_deployment_admin"
VERSION "0.0.2"
NAME "Apache Celix Deployment Admin"
SOURCES
- private/src/deployment_package
- private/src/deployment_admin
- private/src/deployment_admin_activator
- private/src/ioapi
- private/src/miniunz
- private/src/unzip
- private/src/log
- private/src/log_store
- private/src/log_sync
+ src/deployment_package
+ src/deployment_admin
+ src/deployment_admin_activator
+ src/ioapi
+ src/miniunz
+ src/unzip
+ src/log
+ src/log_store
+ src/log_sync
+ )
- private/include/deployment_admin.h
- private/include/deployment_package.h
- private/include/ioapi.h
- private/include/log.h
- private/include/log_event.h
- private/include/log_store.h
- private/include/log_sync.h
- private/include/miniunz.h
- private/include/unzip.h
+ target_compile_definitions(deployment_admin PRIVATE -DUSE_FILE32API)
+ target_include_directories(deployment_admin PRIVATE
+ src
+ ${CURL_INCLUDE_DIRS}
+ ${UUID_INCLUDE_DIRS}
+ ${ZLIB_INCLUDE_DIRS}
)
+ target_link_libraries(deployment_admin PRIVATE ${CURL_LIBRARIES} ${UUID_LIBRARIES} ${ZLIB_LIBRARIES} deployment_admin_api)
- install_bundle(deployment_admin)
-
- install_celix_bundle(deployment_admin
- HEADERS
- public/include/resource_processor.h
- )
-
- target_link_libraries(deployment_admin celix_framework ${CURL_LIBRARIES})
++ install_celix_bundle(deployment_admin)
+ #Setup target aliases to match external usage
+ add_library(Celix::deployment_admin_api ALIAS deployment_admin_api)
+ add_library(Celix::deployment_admin ALIAS deployment_admin)
- add_deploy(deployment-admin
+ add_celix_container(deployment-admin
- BUNDLES deployment_admin shell shell_tui log_service log_writer
+ BUNDLES Celix::deployment_admin Celix::shell Celix::shell_tui Celix::log_service Celix::log_writer_stdout
PROPERTIES
"deployment_admin_url=http://localhost:8080"
"deployment_admin_identification=celix"
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/deployment_admin/README.md
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/README.md
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/device_access/CMakeLists.txt
----------------------------------------------------------------------
diff --cc device_access/device_access/CMakeLists.txt
index 5f19293,52b8694..c39eb9b
--- a/device_access/device_access/CMakeLists.txt
+++ b/device_access/device_access/CMakeLists.txt
@@@ -15,37 -15,39 +15,37 @@@
# specific language governing permissions and limitations
# under the License.
+
+add_library(device_access_api INTERFACE)
+target_include_directories(device_access_api INTERFACE include)
+
- add_bundle(device_manager
+ add_celix_bundle(device_manager
SYMBOLIC_NAME "apache_celix_device_manager"
VERSION "0.0.2"
NAME "Apache Celix Device Access Device Manager"
SOURCES
- private/src/activator
- private/src/driver_attributes
- private/src/device_manager
- private/src/driver_loader
- private/src/driver_matcher
-
- ${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c
-
- private/include/device_manager.h
- private/include/driver_attributes.h
- private/include/driver_loader.h
- private/include/driver_matcher.h
+ src/activator
+ src/driver_attributes
+ src/device_manager
+ src/driver_loader
+ src/driver_matcher
)
+target_link_libraries(device_manager PRIVATE Celix::log_helper)
- install_bundle(device_manager
+ install_celix_bundle(device_manager
HEADERS
- public/include/device.h
- public/include/driver_locator.h
- public/include/driver_selector.h
- public/include/driver.h
- public/include/match.h
+ include/device.h
+ include/driver_locator.h
+ include/driver_selector.h
+ include/driver.h
+ include/match.h
)
+target_include_directories(device_manager PRIVATE src)
+target_link_libraries(device_manager PRIVATE device_access_api)
-include_directories("${PROJECT_SOURCE_DIR}/framework/public/include")
-include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include")
-include_directories("public/include")
-include_directories("private/include")
+#Setup target aliases to match external usage
+add_library(Celix::device_access_api ALIAS device_access_api)
+add_library(Celix::device_manager ALIAS device_manager)
-target_link_libraries(device_manager celix_framework celix_utils)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/driver_locator/CMakeLists.txt
----------------------------------------------------------------------
diff --cc device_access/driver_locator/CMakeLists.txt
index 2e0dde2,88c1fed..f7c679a
--- a/device_access/driver_locator/CMakeLists.txt
+++ b/device_access/driver_locator/CMakeLists.txt
@@@ -20,13 -20,15 +20,13 @@@ add_celix_bundle(driver_locato
VERSION "0.0.2"
NAME "Apache Celix Device Access Driver Locator"
SOURCES
- private/src/activator
- private/src/driver_locator
+ src/activator
+ src/driver_locator
)
- install_bundle(driver_locator)
+ install_celix_bundle(driver_locator)
+target_include_directories(driver_locator PRIVATE src)
+target_link_libraries(driver_locator PRIVATE Celix::device_access_api)
-include_directories(${PROJECT_SOURCE_DIR}/device_access/device_access/public/include)
-include_directories(private/include)
-include_directories("${PROJECT_SOURCE_DIR}/framework/public/include")
-include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
-
-target_link_libraries(driver_locator celix_utils celix_framework)
+#Setup target aliases to match external usage
+add_library(Celix::driver_locator ALIAS driver_locator)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/example/CMakeLists.txt
----------------------------------------------------------------------
diff --cc device_access/example/CMakeLists.txt
index e21e5e0,f7062b4..5deaf85
--- a/device_access/example/CMakeLists.txt
+++ b/device_access/example/CMakeLists.txt
@@@ -21,11 -21,11 +21,11 @@@ if(DEVICE_ACCESS_EXAMPLE
add_subdirectory(consuming_driver)
add_subdirectory(refining_driver)
- add_deploy(device_access_example
+ add_celix_container(device_access_example
- BUNDLES device_manager driver_locator shell shell_tui log_service base_driver
+ BUNDLES Celix::device_manager Celix::driver_locator Celix::shell Celix::shell_tui log_service base_driver
)
- deploy_bundles_dir(device_access_example
+ celix_container_bundles_dir(device_access_example
DIR_NAME "drivers"
BUNDLES word_consumingdriver char_refiningdriver
)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/example/base_driver/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/example/consuming_driver/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/device_access/example/refining_driver/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/dfi/CMakeLists.txt
----------------------------------------------------------------------
diff --cc dfi/CMakeLists.txt
index 950aaa5,676277c..39ed784
--- a/dfi/CMakeLists.txt
+++ b/dfi/CMakeLists.txt
@@@ -18,40 -18,49 +18,45 @@@
find_package(FFI REQUIRED)
find_package(Jansson REQUIRED)
-include_directories(
- ${FFI_INCLUDE_DIRS}
- ${JANSSON_INCLUDE_DIRS}
- private/include
- public/include
- ${PROJECT_SOURCE_DIR}/utils/public/include
+set(SOURCES
+ src/dyn_common.c
+ src/dyn_type.c
+ src/dyn_function.c
+ src/dyn_interface.c
+ src/dyn_message.c
+ src/json_serializer.c
+ src/json_rpc.c
)
- add_library(celix_dfi SHARED ${SOURCES})
- set_target_properties(celix_dfi PROPERTIES OUTPUT_NAME "celix_dfi")
- target_include_directories(celix_dfi PUBLIC include ${JANSSON_INCLUDE_DIRS})
- target_include_directories(celix_dfi PRIVATE src ${FFI_INCLUDE_DIRS})
- target_link_libraries(celix_dfi PUBLIC ${JANSSON_LIBRARY})
- target_link_libraries(celix_dfi PRIVATE Celix::utils ${FFI_LIBRARIES})
- set_target_properties(celix_dfi PROPERTIES "SOVERSION" 1)
-set(MEMSTREAM_SOURCES )
-set(MEMSTREAM_INCLUDES )
-if (APPLE OR ANDROID)
- set(MEMSTREAM_SOURCES ${PROJECT_SOURCE_DIR}/utils/private/src/memstream/open_memstream.c ${PROJECT_SOURCE_DIR}/utils/private/src/memstream/fmemopen.c)
- set(MEMSTREAM_INCLUDES ${PROJECT_SOURCE_DIR}/utils/public/include/memstream/open_memstream.h ${PROJECT_SOURCE_DIR}/utils/public/include/memstream/fmemopen.h)
- include_directories(${PROJECT_SOURCE_DIR}/utils/public/include/memstream)
-endif()
--
- add_library(celix_dfi_static STATIC ${SOURCES})
- set_target_properties(celix_dfi_static PROPERTIES OUTPUT_NAME "celix_dfi_static")
- target_include_directories(celix_dfi_static PUBLIC include ${JANSSON_INCLUDE_DIRS})
- target_include_directories(celix_dfi_static PRIVATE src ${FFI_INCLUDE_DIRS})
- target_link_libraries(celix_dfi_static PUBLIC ${JANSSON_LIBRARY})
- target_link_libraries(celix_dfi_static PRIVATE Celix::utils ${FFI_LIBRARIES})
-add_library(celix_dfi SHARED
- private/src/dyn_common.c
- private/src/dyn_type.c
- private/src/dyn_function.c
- private/src/dyn_interface.c
- private/src/dyn_message.c
- private/src/json_serializer.c
- private/src/json_rpc.c
- ${MEMSTREAM_SOURCES}
++add_library(dfi SHARED ${SOURCES})
++set_target_properties(dfi PROPERTIES OUTPUT_NAME "celix_dfi")
++target_include_directories(dfi PUBLIC
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
++ $<INSTALL_INTERFACE:include/celix/dfi>
++ ${JANSSON_INCLUDE_DIRS}
++)
++target_include_directories(dfi PRIVATE src ${FFI_INCLUDE_DIRS})
++target_link_libraries(dfi PUBLIC ${JANSSON_LIBRARY})
++target_link_libraries(dfi PRIVATE Celix::utils ${FFI_LIBRARIES})
++set_target_properties(dfi PROPERTIES "SOVERSION" 1)
- install(TARGETS celix_dfi celix_dfi_static DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework)
- public/include/dyn_common.h
- public/include/dyn_type.h
- public/include/dyn_function.h
- public/include/dyn_interface.h
- public/include/dyn_message.h
- public/include/json_serializer.h
- public/include/json_rpc.h
- ${MEMSTREAM_INCLUDES}
++add_library(dfi_static STATIC ${SOURCES})
++set_target_properties(dfi_static PROPERTIES OUTPUT_NAME "celix_dfi_static")
++target_include_directories(dfi_static PUBLIC
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
++ $<INSTALL_INTERFACE:include/celix/dfi>
++ ${JANSSON_INCLUDE_DIRS}
+ )
-set_target_properties(celix_dfi PROPERTIES "SOVERSION" 1)
-set_target_properties(celix_dfi PROPERTIES "VERSION" 1.1.0)
-target_link_libraries(celix_dfi celix_utils ${FFI_LIBRARIES} ${JANSSON_LIBRARY})
++target_include_directories(dfi_static PRIVATE src ${FFI_INCLUDE_DIRS})
++target_link_libraries(dfi_static PUBLIC ${JANSSON_LIBRARY})
++target_link_libraries(dfi_static PRIVATE Celix::utils ${FFI_LIBRARIES})
--install(TARGETS celix_dfi DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework)
- FILE(GLOB files "include/*.h")
-FILE(GLOB files "public/include/*.h" ${MEMSTREAM_INCLUDES})
--INSTALL(FILES ${files} DESTINATION include/celix/dfi COMPONENT framework)
++install(TARGETS dfi dfi_static EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dfi)
++install(DIRECTORY include/ DESTINATION include/celix/dfi COMPONENT dfi)
+#Alias setup to match external usage
- add_library(Celix::dfi ALIAS celix_dfi)
- add_library(Celix::dfi_static ALIAS celix_dfi_static)
++add_library(Celix::dfi ALIAS dfi)
++add_library(Celix::dfi_static ALIAS dfi_static)
if (ENABLE_TESTING)
find_package(CppUTest REQUIRED)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/event_admin/event_admin/CMakeLists.txt
----------------------------------------------------------------------
diff --cc event_admin/event_admin/CMakeLists.txt
index 4a0f687,52b1120..87b6e62
--- a/event_admin/event_admin/CMakeLists.txt
+++ b/event_admin/event_admin/CMakeLists.txt
@@@ -34,6 -34,6 +34,6 @@@ add_celix_bundle(event_admi
${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c
)
- install_bundle(event_admin)
+ install_celix_bundle(event_admin)
-target_link_libraries(event_admin celix_framework celix_utils)
+target_link_libraries(event_admin Celix::framework)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/event_admin/event_handler/CMakeLists.txt
----------------------------------------------------------------------
diff --cc event_admin/event_handler/CMakeLists.txt
index 2843122,fe2609c..92813a7
--- a/event_admin/event_handler/CMakeLists.txt
+++ b/event_admin/event_handler/CMakeLists.txt
@@@ -30,6 -30,6 +30,6 @@@ add_celix_bundle(event_handle
${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c
)
- install_bundle(event_handler)
+ install_celix_bundle(event_handler)
-target_link_libraries(event_handler celix_framework celix_utils)
+target_link_libraries(event_handler Celix::framework)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/event_admin/event_publisher/CMakeLists.txt
----------------------------------------------------------------------
diff --cc event_admin/event_publisher/CMakeLists.txt
index dc9e516,01b7b10..4dd314a
--- a/event_admin/event_publisher/CMakeLists.txt
+++ b/event_admin/event_publisher/CMakeLists.txt
@@@ -29,6 -29,6 +29,6 @@@ add_celix_bundle(event_publishe
${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c
)
- install_bundle(event_publisher)
+ install_celix_bundle(event_publisher)
-target_link_libraries(event_publisher celix_framework celix_utils)
+target_link_libraries(event_publisher Celix::framework)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example/CMakeLists.txt
index a18a675,16a8ce1..a2a2143
--- a/examples/dm_example/CMakeLists.txt
+++ b/examples/dm_example/CMakeLists.txt
@@@ -24,16 -27,16 +24,16 @@@ if (BUILD_DEPENDENCY_MANAGER
add_subdirectory(phase3)
- add_deploy(dm_example
- add_celix_container("dm_example"
++ add_celix_container(dm_example
COPY
BUNDLES
- shell
- shell_tui
- dm_shell
- phase1
- phase2a
- phase2b
- phase3
+ Celix::shell
+ Celix::shell_tui
+ Celix::dm_shell
+ dm_example_phase1
+ dm_example_phase2a
+ dm_example_phase2b
+ dm_example_phase3
PROPERTIES
LOGHELPER_ENABLE_STDOUT_FALLBACK=true
)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/api/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example/api/CMakeLists.txt
index 900c8fb,0000000..edbb643
mode 100644,000000..100644
--- a/examples/dm_example/api/CMakeLists.txt
+++ b/examples/dm_example/api/CMakeLists.txt
@@@ -1,19 -1,0 +1,19 @@@
+# 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.
+
+add_library(dm_example_api INTERFACE)
- target_include_directories(dm_example_api INTERFACE include)
++target_include_directories(dm_example_api INTERFACE include)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/phase1/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example/phase1/CMakeLists.txt
index 5263bab,dabb88f..09402ea
--- a/examples/dm_example/phase1/CMakeLists.txt
+++ b/examples/dm_example/phase1/CMakeLists.txt
@@@ -15,8 -15,12 +15,8 @@@
# specific language governing permissions and limitations
# under the License.
-include_directories(
- private/include
- ../services
-)
- add_bundle(dm_example_phase1
-add_celix_bundle(phase1
++add_celix_bundle(dm_example_phase1
SYMBOLIC_NAME phase1
VERSION 0.0.1
SOURCES
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/phase2a/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example/phase2a/CMakeLists.txt
index cda4971,0bd8e7e..82a6fb5
--- a/examples/dm_example/phase2a/CMakeLists.txt
+++ b/examples/dm_example/phase2a/CMakeLists.txt
@@@ -15,7 -15,12 +15,7 @@@
# specific language governing permissions and limitations
# under the License.
- add_bundle(dm_example_phase2a
-include_directories(
- private/include
- ../services
-)
-
-add_celix_bundle(phase2a
++add_celix_bundle(dm_example_phase2a
SYMBOLIC_NAME phase2a
VERSION 0.0.1
SOURCES
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/phase2b/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example/phase2b/CMakeLists.txt
index 9afb6c7,775e786..9172ad8
--- a/examples/dm_example/phase2b/CMakeLists.txt
+++ b/examples/dm_example/phase2b/CMakeLists.txt
@@@ -15,7 -15,12 +15,7 @@@
# specific language governing permissions and limitations
# under the License.
- add_bundle(dm_example_phase2b
-include_directories(
- private/include
- ../services
-)
-
-add_celix_bundle(phase2b
++add_celix_bundle(dm_example_phase2b
SYMBOLIC_NAME phase2b
VERSION 0.0.1
SOURCES
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example/phase3/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example/phase3/CMakeLists.txt
index 1784057,163980f..7cad101
--- a/examples/dm_example/phase3/CMakeLists.txt
+++ b/examples/dm_example/phase3/CMakeLists.txt
@@@ -15,7 -15,12 +15,7 @@@
# specific language governing permissions and limitations
# under the License.
- add_bundle(dm_example_phase3
-include_directories(
- private/include
- ../services
-)
-
-add_celix_bundle(phase3
++add_celix_bundle(dm_example_phase3
SYMBOLIC_NAME phase3
VERSION 0.0.1
SOURCES
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example_cxx/phase1/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example_cxx/phase1/CMakeLists.txt
index 0832816,1a5d049..5007e77
--- a/examples/dm_example_cxx/phase1/CMakeLists.txt
+++ b/examples/dm_example_cxx/phase1/CMakeLists.txt
@@@ -15,7 -15,12 +15,7 @@@
# specific language governing permissions and limitations
# under the License.
- add_bundle(dm_example_cxx_phase1
-include_directories(
- include
- ../api
-)
-
-add_celix_bundle(phase1_cxx
++add_celix_bundle(dm_example_cxx_phase1
SYMBOLIC_NAME phase1_cxx
VERSION 0.0.1
SOURCES
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example_cxx/phase2/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example_cxx/phase2/CMakeLists.txt
index 66f4ddd,0000000..f2b3813
mode 100644,000000..100644
--- a/examples/dm_example_cxx/phase2/CMakeLists.txt
+++ b/examples/dm_example_cxx/phase2/CMakeLists.txt
@@@ -1,51 -1,0 +1,51 @@@
+# 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.
+
- add_bundle(dm_example_cxx_phase2a
++add_celix_bundle(dm_example_cxx_phase2a
+ SYMBOLIC_NAME phase2a_cxx
+ VERSION 0.0.1
+ SOURCES
+ src/Phase2aActivator.cc
+ src/Phase2aCmp.cc
+)
+target_include_directories(dm_example_cxx_phase2a PRIVATE src)
+target_link_libraries(dm_example_cxx_phase2a PRIVATE Celix::log_service_api dm_example_cxx_api)
+
- add_bundle(dm_example_cxx_phase2b
++add_celix_bundle(dm_example_cxx_phase2b
+ SYMBOLIC_NAME phase2b_cxx
+ VERSION 0.0.1
+ SOURCES
+ src/Phase2bActivator.cc
+ src/Phase2bCmp.cc
+ )
+target_include_directories(dm_example_cxx_phase2b PRIVATE src)
+target_link_libraries(dm_example_cxx_phase2b PRIVATE Celix::log_service_api dm_example_cxx_api)
+
+IF(APPLE)
+ target_link_libraries(dm_example_cxx_phase2a PRIVATE -Wl,-all_load Celix::dependency_manager_cxx_static)
+ target_link_libraries(dm_example_cxx_phase2b PRIVATE -Wl,-all_load Celix::dependency_manager_cxx_static)
+else()
+ if(ENABLE_ADDRESS_SANITIZER)
+ #With asan there can be undefined symbols
+ target_link_libraries(dm_example_cxx_phase2a PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive)
+ target_link_libraries(dm_example_cxx_phase2b PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive)
+ else()
+ target_link_libraries(dm_example_cxx_phase2a PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive)
+ target_link_libraries(dm_example_cxx_phase2b PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive)
+
+ endif()
+endif()
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example_cxx/phase3/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example_cxx/phase3/CMakeLists.txt
index 2a62cbb,3c23582..3728abc
--- a/examples/dm_example_cxx/phase3/CMakeLists.txt
+++ b/examples/dm_example_cxx/phase3/CMakeLists.txt
@@@ -15,7 -15,12 +15,7 @@@
# specific language governing permissions and limitations
# under the License.
- add_bundle(dm_example_cxx_phase3
-include_directories(
- include
- ../api
-)
-
-add_celix_bundle(phase3_cxx
++add_celix_bundle(dm_example_cxx_phase3
SYMBOLIC_NAME phase3_cxx
VERSION 0.0.1
SOURCES
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/dm_example_cxx/phase3_locking/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/dm_example_cxx/phase3_locking/CMakeLists.txt
index 2ea1eb4,ef10a33..35ca3c9
--- a/examples/dm_example_cxx/phase3_locking/CMakeLists.txt
+++ b/examples/dm_example_cxx/phase3_locking/CMakeLists.txt
@@@ -15,8 -15,12 +15,8 @@@
# specific language governing permissions and limitations
# under the License.
-include_directories(
- include
- ../api
-)
- add_bundle(dm_example_cxx_phase3_locking
-add_celix_bundle(phase3_locking_cxx
++add_celix_bundle(dm_example_cxx_phase3_locking
SYMBOLIC_NAME phase3_locking_cxx
VERSION 0.0.1
SOURCES
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/hello_world/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/hello_world/CMakeLists.txt
index ca72eec,e90149e..130cef0
--- a/examples/hello_world/CMakeLists.txt
+++ b/examples/hello_world/CMakeLists.txt
@@@ -32,7 -32,7 +32,7 @@@ add_library(hello_test2lib SHARE
)
set_library_version(hello_test2lib "3.3.3")
- add_bundle(hello_bundle
-add_celix_bundle(hello
++add_celix_bundle(hello_bundle
VERSION "1.2"
SOURCES
private/src/activator.c
@@@ -45,19 -45,19 +45,19 @@@ add_celix_bundle(hello_expor
EXPORT_LIBRARIES hello_test2lib
)
- bundle_private_libs(hello_bundle
-celix_bundle_private_libs(hello
++celix_bundle_private_libs(hello_bundle
hello_testlib
)
- add_deploy(helloworld_byref
+ add_celix_container(helloworld_byref
GROUP hello
- BUNDLES hello_export hello shell shell_tui
+ BUNDLES hello_export hello_bundle ${CELIX_SHELL_BUNDLE} ${CELIX_SHELL_TUI_BUNDLE}
)
- add_deploy(helloworld_withcopy
+ add_celix_container(helloworld_withcopy
GROUP hello
COPY #Ensures that bundles are copied in the deploy location
- BUNDLES hello_export hello shell shell_tui
+ BUNDLES hello_export hello_bundle ${SHELL_BUNDLE} ${SHELL_TUI_BUNDLE}
)
endif()
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/hello_world_test/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/hello_world_test/CMakeLists.txt
index 08053e5,2d146fc..41045b2
--- a/examples/hello_world_test/CMakeLists.txt
+++ b/examples/hello_world_test/CMakeLists.txt
@@@ -16,22 -16,19 +16,22 @@@
# under the License.
#############################################################################
- ## NOTE Examples of using add_bundle and add_deploy and assorted commands ##
+ ## NOTE Examples of using add_celix_bundle and add_celix_container and assorted commands ##
#############################################################################
- add_bundle(hellotest1
-include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
-include_directories(public/include)
-
+ add_celix_bundle(hellotest1
VERSION "1.2"
SOURCES
private/src/activator
)
+target_include_directories(hellotest1 PRIVATE
+ ${PROJECT_SOURCE_DIR}/utils/public/include
+ public/include
+)
+
+
- bundle_headers(hellotest1
+ celix_bundle_headers(hellotest1
"X-WebContent: web"
"X-MediaType: application/json"
)
@@@ -41,7 -38,7 +41,7 @@@ add_library(tlib SHARE
)
set_library_version(tlib "4.3.2") # sets target propery VERSION to 4.3.2 and SOVERSION to 4
--#bundle_private_libs(hellotest1
++#celix_bundle_private_libs(hellotest1
# #/usr/local/lib/libjansson.4.dylib
# /usr/lib64/libjansson.so.4
#)
@@@ -75,8 -72,7 +75,8 @@@ add_library(hello2act SHARE
private/src/activator
)
set_library_version(hello2act "3.2.4") #sets VERSION prop to 3.2.4 and SOVERSION to 3
+target_link_libraries(hello2act PRIVATE Celix::framework )
- add_bundle(hellotest2
+ add_celix_bundle(hellotest2
VERSION "1.0.0" #can be the same as activator lib, but does not have to be
ACTIVATOR hello2act
)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/log_service_example/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/log_service_example/CMakeLists.txt
index 1326a0f,fffa68f..31f6fc8
--- a/examples/log_service_example/CMakeLists.txt
+++ b/examples/log_service_example/CMakeLists.txt
@@@ -17,15 -17,20 +17,15 @@@
#Importing and exporting libraries not (yet) work under OSX.
- add_bundle(log_service_example
-include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
-include_directories("public/include")
-include_directories("${CMAKE_SOURCE_DIR}/log_service/public/include")
-
+ add_celix_bundle(log_service_example
VERSION "1.0"
SOURCES
- private/src/activator.c
- ${CMAKE_SOURCE_DIR}/log_service/public/src/log_helper.c
+ src/activator.c
)
+target_include_directories(log_service_example PRIVATE src)
+target_link_libraries(log_service_example PRIVATE Celix::log_service_api Celix::log_helper)
- add_deploy(log_example
+ add_celix_container(log_example
GROUP log_service
- BUNDLES log_service_example log_service shell shell_tui
+ BUNDLES log_service_example Celix::log_service Celix::shell Celix::shell_tui
)
-
-target_link_libraries(log_service_example celix_framework celix_utils)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/mongoose/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/mongoose/CMakeLists.txt
index 118d923,2de051f..7119aa7
--- a/examples/mongoose/CMakeLists.txt
+++ b/examples/mongoose/CMakeLists.txt
@@@ -35,8 -35,8 +35,8 @@@ add_celix_bundle(mongoos
private/include/mongoose.h
)
- bundle_files(mongoose ${CMAKE_CURRENT_LIST_DIR}/root)
+ celix_bundle_files(mongoose ${CMAKE_CURRENT_LIST_DIR}/root)
-target_link_libraries(mongoose celix_framework mongooselib ${LIBS})
+target_link_libraries(mongoose PRIVATE mongooselib ${LIBS})
- add_deploy("mongoose_deploy" BUNDLES Celix::shell Celix::shell_tui log_service mongoose)
-add_celix_container("mongoose_deploy" BUNDLES shell shell_tui log_service mongoose)
++add_celix_container("mongoose_deploy" BUNDLES Celix::shell Celix::shell_tui log_service mongoose)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/service_hook_example/CMakeLists.txt
----------------------------------------------------------------------
diff --cc examples/service_hook_example/CMakeLists.txt
index 99e9b2a,8348059..9dbe7c0
--- a/examples/service_hook_example/CMakeLists.txt
+++ b/examples/service_hook_example/CMakeLists.txt
@@@ -15,16 -15,23 +15,16 @@@
# specific language governing permissions and limitations
# under the License.
- add_bundle(hook_example
-if(NOT APPLE)
-#Importing and exporting libraries not (yet) work under OSX.
-
-include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
-include_directories("public/include")
-
+ add_celix_bundle(hook_example
- BUNDLE_SYMBOLICNAME "Hook_Example"
- VERSION "1.0.0"
- SOURCES
- private/src/activator
+ BUNDLE_SYMBOLICNAME "Hook_Example"
+ VERSION "1.0.0"
+ SOURCES
+ src/activator
)
- add_deploy(hook_service_example
-add_celix_container("hook_service_example"
- BUNDLES
- shell
- shell_tui
- hook_example
++add_celix_container(hook_service_example
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ hook_example
- )
+ )
-endif()
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_c/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_c/bar/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_c/foo1/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_c/foo2/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_cxx/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_cxx/bar/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_cxx/baz/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/examples/services_example_cxx/foo/CMakeLists.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/framework/src/celix_launcher.c
----------------------------------------------------------------------
diff --cc framework/src/celix_launcher.c
index fe5d0c0,0000000..8a14e9b
mode 100644,000000..100644
--- a/framework/src/celix_launcher.c
+++ b/framework/src/celix_launcher.c
@@@ -1,315 -1,0 +1,317 @@@
+/**
+ *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.
+ */
+/*
+ * celix_launcher.c
+ *
+ * \date Mar 23, 2010
+ * \author <a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
+ * \copyright Apache License, Version 2.0
+ */
+
+#include "celix_launcher.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <libgen.h>
+#include <signal.h>
+
+#ifndef CELIX_NO_CURLINIT
+#include <curl/curl.h>
+#endif
+
+#include <string.h>
+#include <curl/curl.h>
+#include <signal.h>
+#include <libgen.h>
+#include "celix_launcher.h"
+#include "framework.h"
+#include "linked_list_iterator.h"
+
+static void show_usage(char* prog_name);
+static void shutdown_framework(int signal);
+static void ignore(int signal);
+
+static int celixLauncher_launchWithConfigAndProps(const char *configFile, framework_pt *framework, properties_pt packedConfig);
+static int celixLauncher_launchWithStreamAndProps(FILE *stream, framework_pt *framework, properties_pt packedConfig);
+
+#define DEFAULT_CONFIG_FILE "config.properties"
+
+static framework_pt framework = NULL;
+
+/**
+ * Method kept because of usage in examples & unit tests
+ */
+int celixLauncher_launchWithArgs(int argc, char *argv[]) {
+ return celixLauncher_launchWithArgsAndProps(argc, argv, NULL);
+}
+
+int celixLauncher_launchWithArgsAndProps(int argc, char *argv[], properties_pt packedConfig) {
+ // Perform some minimal command-line option parsing...
+ char *opt = NULL;
+ if (argc > 1) {
+ opt = argv[1];
+ }
+
+ char *config_file = NULL;
+
+ if (opt) {
+ // Check whether the user wants some help...
+ if (strcmp("-h", opt) == 0 || strcmp("-help", opt) == 0) {
+ show_usage(argv[0]);
+ return 0;
+ } else {
+ config_file = opt;
+ }
+ } else {
+ config_file = DEFAULT_CONFIG_FILE;
+ }
+
+ struct sigaction sigact;
+ memset(&sigact, 0, sizeof(sigact));
+ sigact.sa_handler = shutdown_framework;
+ sigaction(SIGINT, &sigact, NULL);
+ sigaction(SIGTERM, &sigact, NULL);
+
+ memset(&sigact, 0, sizeof(sigact));
+ sigact.sa_handler = ignore;
+ sigaction(SIGUSR1, &sigact, NULL);
+ sigaction(SIGUSR2, &sigact, NULL);
+
+ int rc = celixLauncher_launchWithConfigAndProps(config_file, &framework, packedConfig);
+ if (rc == 0) {
+ celixLauncher_waitForShutdown(framework);
+ celixLauncher_destroy(framework);
+ }
+ return rc;
+}
+
+static void show_usage(char* prog_name) {
+ printf("Usage:\n %s [path/to/config.properties]\n\n", basename(prog_name));
+}
+
+static void shutdown_framework(int signal) {
+ if (framework != NULL) {
+ celixLauncher_stop(framework); //NOTE main thread will destroy
+ }
+}
+
+static void ignore(int signal) {
+ //ignoring for signal SIGUSR1, SIGUSR2. Can be used on threads
+}
+
+int celixLauncher_launch(const char *configFile, framework_pt *framework) {
+ return celixLauncher_launchWithConfigAndProps(configFile, framework, NULL);
+}
+
+static int celixLauncher_launchWithConfigAndProps(const char *configFile, framework_pt *framework, properties_pt packedConfig){
+ int status = 0;
+ FILE *config = fopen(configFile, "r");
+
+ if (config != NULL && packedConfig != NULL) {
+ status = celixLauncher_launchWithStreamAndProps(config, framework, packedConfig);
+ } else if (config != NULL) {
+ status = celixLauncher_launchWithStream(config, framework);
+ } else if (packedConfig != NULL) {
+ status = celixLauncher_launchWithProperties(packedConfig, framework);
+ } else {
+ fprintf(stderr, "Error: invalid or non-existing configuration file: '%s'.", configFile);
+ perror("");
+ status = 1;
+ }
+
+ return status;
+}
+
+int celixLauncher_launchWithStream(FILE *stream, framework_pt *framework) {
+ int status = 0;
+
+ properties_pt config = properties_loadWithStream(stream);
+ fclose(stream);
+ // Make sure we've read it and that nothing went wrong with the file access...
+ if (config == NULL) {
+ fprintf(stderr, "Error: invalid configuration file");
+ perror(NULL);
+ status = 1;
+ }
+ else {
+ status = celixLauncher_launchWithProperties(config, framework);
+ }
+
+ return status;
+}
+
+static int celixLauncher_launchWithStreamAndProps(FILE *stream, framework_pt *framework, properties_pt packedConfig){
+ int status = 0;
+
+ properties_pt runtimeConfig = properties_loadWithStream(stream);
+ fclose(stream);
+
+ // Make sure we've read it and that nothing went wrong with the file access...
+ // If there is no runtimeConfig, the packedConfig can be stored as global config
+ if (runtimeConfig == NULL){
+ runtimeConfig = packedConfig;
+ }
+
+ if (runtimeConfig == NULL) {
+ fprintf(stderr, "Error: invalid configuration file");
+ perror(NULL);
+ status = 1;
+ } else {
+ // Check if there's a pre-compiled config available
+ if (packedConfig != NULL){
+ // runtimeConfig and packedConfig must be merged
+ // when a duplicate of a key is available, the runtimeConfig must be prioritized
+
+ hash_map_iterator_t iter = hashMapIterator_construct(packedConfig);
+
+ hash_map_entry_pt entry = hashMapIterator_nextEntry(&iter);
+
+ while (entry != NULL) {
+ const char * key = (const char *) hashMapEntry_getKey(entry);
+ const char * value = (const char *) hashMapEntry_getValue(entry);
+
+ // Check existence of key in runtimeConfig
+ if (!hashMap_containsKey(runtimeConfig, key)) {
+ properties_set(runtimeConfig, key, value);
+ }
+
+ entry = hashMapIterator_nextEntry(&iter);
+ if (entry != NULL) {
+ key = (const char *) hashMapEntry_getKey(entry);
+ value = (const char *) hashMapEntry_getValue(entry);
+ }
+ }
+
+ // normally, the framework_destroy will clean up the properties_pt
+ // since there are 2 properties_pt available (runtimeConfig and packedConfig)
+ // the packedConfig must be destroyed
+ properties_destroy(packedConfig);
+ }
+
+ status = celixLauncher_launchWithProperties(runtimeConfig, framework);
+ }
+
+ return status;
+}
+
+int celixLauncher_launchWithProperties(properties_pt config, framework_pt *framework) {
+ celix_status_t status;
+#ifndef CELIX_NO_CURLINIT
+ // Before doing anything else, let's setup Curl
+ curl_global_init(CURL_GLOBAL_NOTHING);
+#endif
+
+ const char* autoStartProp = properties_get(config, "cosgi.auto.start.1");
+ char* autoStart = NULL;
+ if (autoStartProp != NULL) {
+ autoStart = strndup(autoStartProp, 1024*10);
+ }
+
+ status = framework_create(framework, config);
+ bundle_pt fwBundle = NULL;
+ if (status == CELIX_SUCCESS) {
+ status = fw_init(*framework);
+ if (status == CELIX_SUCCESS) {
+ // Start the system bundle
+ status = framework_getFrameworkBundle(*framework, &fwBundle);
+
+ if(status == CELIX_SUCCESS){
+ bundle_start(fwBundle);
+
+ char delims[] = " ";
+ char *result = NULL;
+ char *save_ptr = NULL;
+ linked_list_pt bundles;
+ array_list_pt installed = NULL;
+ bundle_context_pt context = NULL;
+ linked_list_iterator_pt iter = NULL;
+ unsigned int i;
+
+ linkedList_create(&bundles);
- result = strtok_r(autoStart, delims, &save_ptr);
- while (result != NULL) {
- char *location = strdup(result);
- linkedList_addElement(bundles, location);
- result = strtok_r(NULL, delims, &save_ptr);
++ if (autoStart != NULL) {
++ result = strtok_r(autoStart, delims, &save_ptr);
++ while (result != NULL) {
++ char *location = strdup(result);
++ linkedList_addElement(bundles, location);
++ result = strtok_r(NULL, delims, &save_ptr);
++ }
+ }
+ // First install all bundles
+ // Afterwards start them
+ arrayList_create(&installed);
+ bundle_getContext(fwBundle, &context);
+ iter = linkedListIterator_create(bundles, 0);
+ while (linkedListIterator_hasNext(iter)) {
+ bundle_pt current = NULL;
+ char *location = (char *) linkedListIterator_next(iter);
+ if (bundleContext_installBundle(context, location, ¤t) == CELIX_SUCCESS) {
+ // Only add bundle if it is installed correctly
+ arrayList_add(installed, current);
+ } else {
+ printf("Could not install bundle from %s\n", location);
+ }
+ linkedListIterator_remove(iter);
+ free(location);
+ }
+ linkedListIterator_destroy(iter);
+ linkedList_destroy(bundles);
+
+ for (i = 0; i < arrayList_size(installed); i++) {
+ bundle_pt installedBundle = (bundle_pt) arrayList_get(installed, i);
+ bundle_startWithOptions(installedBundle, 0);
+ }
+
+ arrayList_destroy(installed);
+ }
+ }
+ }
+
+ if (status != CELIX_SUCCESS) {
+ printf("Problem creating framework\n");
+ }
+
+ printf("Launcher: Framework Started\n");
+
+ free(autoStart);
+
+ return status;
+}
+
+void celixLauncher_waitForShutdown(framework_pt framework) {
+ framework_waitForStop(framework);
+}
+
+void celixLauncher_destroy(framework_pt framework) {
+ framework_destroy(framework);
+
+#ifndef CELIX_NO_CURLINIT
+ // Cleanup Curl
+ curl_global_cleanup();
+#endif
+
+ printf("Launcher: Exit\n");
+}
+
+void celixLauncher_stop(framework_pt framework) {
+ bundle_pt fwBundle = NULL;
+ if( framework_getFrameworkBundle(framework, &fwBundle) == CELIX_SUCCESS){
+ bundle_stop(fwBundle);
+ }
+}
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/log_service/CMakeLists.txt
----------------------------------------------------------------------
diff --cc log_service/CMakeLists.txt
index 70afb0e,856e21d..bd59961
--- a/log_service/CMakeLists.txt
+++ b/log_service/CMakeLists.txt
@@@ -18,49 -18,37 +18,50 @@@
celix_subproject(LOG_SERVICE "Option to enable building the Log Service bundles" ON DEPS framework)
if (LOG_SERVICE)
+ add_library(log_service_api INTERFACE)
+ target_include_directories(log_service_api INTERFACE
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
+ $<INSTALL_INTERFACE:include/celix/log_service>
+ )
+ install(TARGETS log_service_api EXPORT celix)
+ install(DIRECTORY include/ DESTINATION include/celix/log_service)
+
+ add_library(log_helper STATIC src/log_helper.c)
++ set_target_properties(log_helper PROPERTIES OUTPUT_NAME "celix_log_helper")
+ target_include_directories(log_helper PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/loghelper_include>
+ $<INSTALL_INTERFACE:include/celix/log_helper>
+ )
+ target_link_libraries(log_helper PUBLIC Celix::framework log_service_api)
+ install(TARGETS log_helper EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT log_service)
+ install(DIRECTORY loghelper_include/ DESTINATION include/celix/log_helper COMPONENT log_service)
+
- add_bundle(log_service
+ add_celix_bundle(log_service
SYMBOLIC_NAME "apache_celix_log_service"
NAME "Apache Celix Log Service"
VERSION "1.1.0"
SOURCES
- private/src/log
- private/src/log_entry
- private/src/log_factory
- private/src/log_service_impl
- private/src/log_service_activator
- private/src/log_reader_service_impl
-
- private/include/log.h
- private/include/log_factory.h
- private/include/log_reader_service_impl.h
- private/include/log_service_impl.h
+ src/log
+ src/log_entry
+ src/log_factory
+ src/log_service_impl
+ src/log_service_activator
+ src/log_reader_service_impl
)
- install_bundle(log_service
+ install_celix_bundle(log_service
HEADERS
- public/include/log_service.h
- public/include/log_reader_service.h
- public/include/log_listener.h
- public/include/log_entry.h
- public/include/log_helper.h
- RESOURCES
- public/src/log_helper.c
+ include/log_service.h
+ include/log_reader_service.h
+ include/log_listener.h
+ include/log_entry.h
)
-
- include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
- include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include")
- include_directories("${PROJECT_SOURCE_DIR}/log_service/private/include")
- target_link_libraries(log_service celix_framework)
+
+ target_include_directories(log_service PRIVATE src)
+ target_link_libraries(log_service PRIVATE log_service_api)
+
+ #Setup target aliases to match external usage
+ add_library(Celix::log_service_api ALIAS log_service_api)
+ add_library(Celix::log_service ALIAS log_service)
+ add_library(Celix::log_helper ALIAS log_helper)
endif (LOG_SERVICE)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/log_writer/log_writer/CMakeLists.txt
----------------------------------------------------------------------
diff --cc log_writer/log_writer/CMakeLists.txt
index 09aa9cf,0000000..cc6b8eb
mode 100644,000000..100644
--- a/log_writer/log_writer/CMakeLists.txt
+++ b/log_writer/log_writer/CMakeLists.txt
@@@ -1,24 -1,0 +1,24 @@@
+# 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.
+
+add_library(log_writer_common STATIC
+ src/log_writer.c
+ src/log_writer_activator.c
+)
+target_include_directories(log_writer_common PRIVATE src)
+target_include_directories(log_writer_common PUBLIC include)
- target_link_libraries(log_writer_common PUBLIC Celix::log_service_api Celix::framework)
++target_link_libraries(log_writer_common PUBLIC Celix::log_service_api Celix::framework)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/log_writer/log_writer_stdout/CMakeLists.txt
----------------------------------------------------------------------
diff --cc log_writer/log_writer_stdout/CMakeLists.txt
index 6070b2e,6502792..94effae
--- a/log_writer/log_writer_stdout/CMakeLists.txt
+++ b/log_writer/log_writer_stdout/CMakeLists.txt
@@@ -15,14 -15,22 +15,14 @@@
# specific language governing permissions and limitations
# under the License.
- add_bundle(log_writer_stdout
-add_celix_bundle(log_writer
++add_celix_bundle(log_writer_stdout
SYMBOLIC_NAME "apache_celix_log_writer"
VERSION "1.1.0"
NAME "Apache Celix Log Writer"
SOURCES
- ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/src/log_writer_activator
- ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/src/log_writer
- ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/include/log_writer.h
-
- private/src/log_writer_stdout
+ src/log_writer_stdout
)
- install_bundle(log_writer_stdout)
-install_celix_bundle(log_writer)
-
-target_link_libraries(log_writer celix_framework)
-
-include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
-include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include")
-include_directories("${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/include")
++install_celix_bundle(log_writer_stdout)
+
- target_link_libraries(log_writer_stdout PRIVATE Celix::log_service_api log_writer_common)
++target_link_libraries(log_writer_stdout PRIVATE Celix::log_service_api log_writer_common)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/log_writer/log_writer_syslog/CMakeLists.txt
----------------------------------------------------------------------
diff --cc log_writer/log_writer_syslog/CMakeLists.txt
index b98b914,faa7905..e2003d5
--- a/log_writer/log_writer_syslog/CMakeLists.txt
+++ b/log_writer/log_writer_syslog/CMakeLists.txt
@@@ -23,10 -23,18 +23,10 @@@ if (LOG_WRITER_SYSLOG
SYMBOLIC_NAME "apache_celix_log_writer_syslog"
NAME "Apache Celix Log Writer Syslog"
SOURCES
- ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/src/log_writer_activator
- ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/src/log_writer
- ${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/include/log_writer.h
-
- private/src/log_writer_syslog
+ private/src/log_writer_syslog
)
- install_bundle(log_writer_syslog)
+ install_celix_bundle(log_writer_syslog)
-
- target_link_libraries(log_writer_syslog celix_framework)
-
- include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
- include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include")
- include_directories("${PROJECT_SOURCE_DIR}/log_writer/log_writer/private/include")
+
+ target_link_libraries(log_writer_syslog PRIVATE log_writer_common)
endif (LOG_WRITER_SYSLOG)
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/pubsub/CMakeLists.txt
----------------------------------------------------------------------
diff --cc pubsub/CMakeLists.txt
index 79f8168,5afc296..e3db995
--- a/pubsub/CMakeLists.txt
+++ b/pubsub/CMakeLists.txt
@@@ -34,12 -35,13 +34,12 @@@ if (PUBSUB
add_subdirectory(keygen)
add_subdirectory(mock)
+ add_subdirectory(examples)
if (ENABLE_TESTING)
- option(BUILD_PUBSUB_TESTS "Enable Tests for PUBSUB" OFF)
+ option(BUILD_PUBSUB_TESTS "Enable Tests for PUBSUB" OFF)
endif()
- if (ENABLE_TESTING AND BUILD_PUBSUB_TESTS)
+ if (ENABLE_TESTING AND BUILD_PUBSUB_TESTS AND BUILD_PUBSUB_PSA_ZMQ)
add_subdirectory(test)
endif()
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/pubsub/examples/CMakeLists.txt
----------------------------------------------------------------------
diff --cc pubsub/examples/CMakeLists.txt
index b79b101,22ca5ca..6703324
--- a/pubsub/examples/CMakeLists.txt
+++ b/pubsub/examples/CMakeLists.txt
@@@ -17,216 -17,3 +17,216 @@@
add_subdirectory(pubsub)
add_subdirectory(mp_pubsub)
+
+find_program(ETCD_CMD NAMES etcd)
+find_program(XTERM_CMD NAMES xterm)
+
+# UDP Multicast
- add_deploy(pubsub_publisher_udp_mc
++add_celix_container(pubsub_publisher_udp_mc
+ GROUP pubsub
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
+ Celix::pubsub_admin_udp_multicast
+ celix_pubsub_poi_publisher
+ celix_pubsub_poi_publisher2
+ )
+
- add_deploy("pubsub_subscriber_udp_mc"
++add_celix_container("pubsub_subscriber_udp_mc"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
+ Celix::pubsub_admin_udp_multicast
+ celix_pubsub_poi_subscriber
+ )
+
- add_deploy("pubsub_subscriber2_udp_mc"
++add_celix_container("pubsub_subscriber2_udp_mc"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
+ Celix::pubsub_admin_udp_multicast
+ celix_pubsub_poi_subscriber
+ )
+
+if (ETCD_CMD AND XTERM_CMD)
+ #Runtime starting a publish and subscriber for udp mc
+ add_runtime(pubsub_rt_upd_mc
+ NAME udp_mc
+ GROUP pubsub
+ DEPLOYMENTS
+ pubsub_publisher_udp_mc
+ pubsub_subscriber_udp_mc
+ pubsub_subscriber2_udp_mc
+ COMMANDS
+ etcd
+ USE_TERM
+ )
+endif ()
+
+if (BUILD_PUBSUB_PSA_ZMQ)
+
+ # Dynamic ZMQ / UDP admin
- add_deploy("pubsub_publisher"
++ add_celix_container("pubsub_publisher"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
+ Celix::pubsub_admin_zmq
+ Celix::pubsub_admin_udp_multicast
+ celix_pubsub_poi_publisher
+ celix_pubsub_poi_publisher2
+ PROPERTIES
+ poi1.psa=zmq
+ poi2.psa=udp
+ )
+
- add_deploy("pubsub_subscriber"
++ add_celix_container("pubsub_subscriber"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
+ Celix::pubsub_admin_zmq
+ Celix::pubsub_admin_udp_multicast
+ celix_pubsub_poi_subscriber
+ PROPERTIES
+ poi1.psa=zmq
+ poi2.psa=udp
+ )
+
+ # ZMQ
- add_deploy("pubsub_zmq"
++ add_celix_container("pubsub_zmq"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
- org.apache.celix.pubsub_admin.PubSubAdminZmq
++ Celix::pubsub_admin_zmq
+ celix_pubsub_poi_publisher
+ celix_pubsub_poi_subscriber
+ )
+
- add_deploy("pubsub_publisher_zmq"
++ add_celix_container("pubsub_publisher_zmq"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
+ Celix::pubsub_admin_zmq
+ celix_pubsub_poi_publisher
+ celix_pubsub_poi_publisher2
+ PROPERTIES
+ pubsub.scope=my_small_scope
+ )
+
- add_deploy("pubsub_subscriber_zmq"
++ add_celix_container("pubsub_subscriber_zmq"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
- org.apache.celix.pubsub_admin.PubSubAdminZmq
++ Celix::pubsub_admin_zmq
+ celix_pubsub_poi_subscriber
+ )
+
- add_deploy("pubsub_subscriber2_zmq"
++ add_celix_container("pubsub_subscriber2_zmq"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
+ Celix::pubsub_admin_zmq
+ celix_pubsub_poi_subscriber
+
+ )
+
+ # ZMQ Multipart
- add_deploy("pubsub_mp_subscriber_zmq"
++ add_celix_container("pubsub_mp_subscriber_zmq"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
+ Celix::pubsub_admin_zmq
+ org.apache.celix.pubsub_subscriber.MpSubscriber
+ )
+
- add_deploy("pubsub_mp_publisher_zmq"
++ add_celix_container("pubsub_mp_publisher_zmq"
+ GROUP "pubsub"
+ BUNDLES
+ Celix::shell
+ Celix::shell_tui
+ Celix::pubsub_serializer_json
+ Celix::pubsub_discovery_etcd
+ Celix::pubsub_topology_manager
+ Celix::pubsub_admin_zmq
+ org.apache.celix.pubsub_publisher.MpPublisher
+ )
+
+ if (ETCD_CMD AND XTERM_CMD)
+ #Runtime starting two bundles using both zmq and upd mc pubsub
+ add_runtime(pubsub_rt_zmq_udpmc_combi
+ NAME combi
+ GROUP pubsub
+ DEPLOYMENTS
+ pubsub_publisher_zmq
+ pubsub_subscriber_zmq
+ pubsub_subscriber_zmq
+ COMMANDS
+ etcd
+ USE_TERM
+ )
+
+ #Runtime starting a publish and 2 subscribers for zmq
+ add_runtime(pubsub_rt_zmq
+ NAME zmq
+ GROUP pubsub
+ DEPLOYMENTS
+ pubsub_publisher
+ pubsub_subscriber_zmq
+ pubsub_subscriber2_zmq
+ COMMANDS
+ etcd
+ USE_TERM
+ )
+
+ #Runtime starting a multipart (multiple message in one send) publish and subscriber for zmq
+ add_runtime(pubsub_rt_multipart_zmq
+ NAME zmq_multipart
+ GROUP pubsub
+ DEPLOYMENTS
+ pubsub_mp_subscriber_zmq
+ pubsub_mp_publisher_zmq
+ COMMANDS
+ etcd
+ USE_TERM
+ )
+ endif ()
+
+endif()
http://git-wip-us.apache.org/repos/asf/celix/blob/0ea8de64/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt
----------------------------------------------------------------------
diff --cc pubsub/examples/mp_pubsub/publisher/CMakeLists.txt
index e837d7f,fef69e4..653387e
--- a/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt
+++ b/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt
@@@ -15,17 -15,22 +15,17 @@@
# specific language governing permissions and limitations
# under the License.
- add_bundle(org.apache.celix.pubsub_publisher.MpPublisher
-include_directories("private/include")
-include_directories("${PROJECT_SOURCE_DIR}/framework/public/include")
-include_directories("${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/include")
-include_directories("${PROJECT_SOURCE_DIR}/pubsub/api/pubsub")
-include_directories("${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/common/include")
-
+ add_celix_bundle(org.apache.celix.pubsub_publisher.MpPublisher
SYMBOLIC_NAME "apache_celix_pubsub_mp_publisher"
VERSION "1.0.0"
SOURCES
private/src/mp_pub_activator.c
private/src/mp_publisher.c
- ${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_utils.c
)
+target_link_libraries(org.apache.celix.pubsub_publisher.MpPublisher PRIVATE Celix::framework Celix::pubsub_api)
+target_include_directories(org.apache.celix.pubsub_publisher.MpPublisher PRIVATE private/include)
- bundle_files(org.apache.celix.pubsub_publisher.MpPublisher
+ celix_bundle_files(org.apache.celix.pubsub_publisher.MpPublisher
${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/msg_descriptors/msg_ew.descriptor
${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/msg_descriptors/msg_ide.descriptor
${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/msg_descriptors/msg_kinematics.descriptor