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, &current) == 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