CELIX-417: Refactors cmake usage of pubsub and rsa. Started with installing 
exported targets


Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/81804e00
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/81804e00
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/81804e00

Branch: refs/heads/develop
Commit: 81804e001001de1cd7ffd86d671ef53b8e74a429
Parents: ac0d0d7
Author: Pepijn Noltes <[email protected]>
Authored: Wed Jan 24 19:30:21 2018 +0100
Committer: Pepijn Noltes <[email protected]>
Committed: Wed Jan 24 19:30:21 2018 +0100

----------------------------------------------------------------------
 CMakeLists.txt                                  |    4 +
 framework/CMakeLists.txt                        |   18 +-
 log_service/CMakeLists.txt                      |   15 +-
 pubsub/CMakeLists.txt                           |   38 +-
 pubsub/api/pubsub/publisher.h                   |   88 --
 pubsub/api/pubsub/subscriber.h                  |   75 --
 pubsub/deploy/CMakeLists.txt                    |  229 ----
 pubsub/examples/CMakeLists.txt                  |  213 ++++
 .../examples/mp_pubsub/publisher/CMakeLists.txt |   11 +-
 .../private/include/mp_publisher_private.h      |    2 +-
 .../publisher/private/src/mp_pub_activator.c    |   48 +-
 .../publisher/private/src/mp_publisher.c        |    1 -
 .../mp_pubsub/subscriber/CMakeLists.txt         |   17 +-
 .../private/include/mp_subscriber_private.h     |    3 +-
 .../subscriber/private/src/mp_sub_activator.c   |   40 +-
 pubsub/examples/pubsub/publisher/CMakeLists.txt |   21 +-
 .../private/include/pubsub_publisher_private.h  |    2 +-
 .../publisher/private/src/ps_pub_activator.c    |   54 +-
 .../publisher/private/src/pubsub_publisher.c    |    1 -
 .../examples/pubsub/publisher2/CMakeLists.txt   |   23 +-
 .../examples/pubsub/subscriber/CMakeLists.txt   |   27 +-
 .../private/include/pubsub_subscriber_private.h |    3 +-
 .../subscriber/private/src/ps_sub_activator.c   |   38 +-
 pubsub/mock/CMakeLists.txt                      |   20 +-
 pubsub/pubsub_admin_udp_mc/CMakeLists.txt       |   15 +-
 .../pubsub_admin_udp_mc/src/pubsub_admin_impl.c |    2 +-
 .../pubsub_admin_udp_mc/src/topic_publication.c |    2 +-
 .../pubsub_admin_udp_mc/src/topic_publication.h |    2 +-
 .../src/topic_subscription.c                    |    4 +-
 pubsub/pubsub_admin_zmq/CMakeLists.txt          |   48 +-
 .../private/include/pubsub_admin_impl.h         |  109 --
 .../private/include/topic_publication.h         |   49 -
 .../private/include/topic_subscription.h        |   60 -
 .../private/include/zmq_crypto.h                |   41 -
 .../private/src/psa_activator.c                 |  142 ---
 .../private/src/pubsub_admin_impl.c             | 1040 ------------------
 .../private/src/topic_publication.c             |  630 -----------
 .../private/src/topic_subscription.c            |  732 ------------
 .../pubsub_admin_zmq/private/src/zmq_crypto.c   |  281 -----
 pubsub/pubsub_admin_zmq/src/psa_activator.c     |  142 +++
 pubsub/pubsub_admin_zmq/src/pubsub_admin_impl.c | 1040 ++++++++++++++++++
 pubsub/pubsub_admin_zmq/src/pubsub_admin_impl.h |  109 ++
 pubsub/pubsub_admin_zmq/src/topic_publication.c |  630 +++++++++++
 pubsub/pubsub_admin_zmq/src/topic_publication.h |   49 +
 .../pubsub_admin_zmq/src/topic_subscription.c   |  732 ++++++++++++
 .../pubsub_admin_zmq/src/topic_subscription.h   |   60 +
 pubsub/pubsub_admin_zmq/src/zmq_crypto.c        |  281 +++++
 pubsub/pubsub_admin_zmq/src/zmq_crypto.h        |   41 +
 pubsub/pubsub_api/CMakeLists.txt                |   32 +
 pubsub/pubsub_api/include/pubsub/publisher.h    |   88 ++
 pubsub/pubsub_api/include/pubsub/subscriber.h   |   75 ++
 .../include/publisher_endpoint_announce.h       |   36 -
 .../pubsub_common/public/include/pubsub_admin.h |   72 --
 .../public/include/pubsub_admin_match.h         |   40 -
 .../public/include/pubsub_common.h              |   52 -
 .../public/include/pubsub_endpoint.h            |   58 -
 .../public/include/pubsub_serializer.h          |   66 --
 .../public/include/pubsub_topic_info.descriptor |   10 -
 .../pubsub_common/public/include/pubsub_utils.h |   39 -
 .../public/src/pubsub_admin_match.c             |  320 ------
 .../pubsub_common/public/src/pubsub_endpoint.c  |  254 -----
 pubsub/pubsub_common/public/src/pubsub_utils.c  |  170 ---
 pubsub/pubsub_discovery/CMakeLists.txt          |   15 +-
 pubsub/pubsub_serializer_json/CMakeLists.txt    |   13 +-
 pubsub/pubsub_spi/CMakeLists.txt                |   35 +
 .../include/publisher_endpoint_announce.h       |   36 +
 pubsub/pubsub_spi/include/pubsub_admin.h        |   72 ++
 pubsub/pubsub_spi/include/pubsub_admin_match.h  |   40 +
 pubsub/pubsub_spi/include/pubsub_common.h       |   52 +
 pubsub/pubsub_spi/include/pubsub_endpoint.h     |   58 +
 pubsub/pubsub_spi/include/pubsub_serializer.h   |   66 ++
 .../include/pubsub_topic_info.descriptor        |   10 +
 pubsub/pubsub_spi/include/pubsub_utils.h        |   39 +
 pubsub/pubsub_spi/src/pubsub_admin_match.c      |  320 ++++++
 pubsub/pubsub_spi/src/pubsub_endpoint.c         |  254 +++++
 pubsub/pubsub_spi/src/pubsub_utils.c            |  170 +++
 pubsub/pubsub_topology_manager/CMakeLists.txt   |   19 +-
 .../private/include/pubsub_topology_manager.h   |   83 --
 .../private/src/pstm_activator.c                |  246 -----
 .../private/src/pubsub_topology_manager.c       |  723 ------------
 .../src/pstm_activator.c                        |  244 ++++
 .../src/pubsub_topology_manager.c               |  721 ++++++++++++
 .../src/pubsub_topology_manager.h               |   82 ++
 pubsub/test/CMakeLists.txt                      |   10 +-
 remote_services/CMakeLists.txt                  |   11 +-
 remote_services/discovery_common/CMakeLists.txt |    2 +-
 .../examples/calculator_service/CMakeLists.txt  |    2 +-
 .../remote_service_admin_api/CMakeLists.txt     |   45 -
 .../remote_service_admin_api/README.md          |   11 -
 .../include/endpoint_description.h              |   50 -
 .../include/endpoint_listener.h                 |   49 -
 .../include/export_registration.h               |   22 -
 .../include/import_registration.h               |   22 -
 .../include/remote_constants.h                  |   38 -
 .../include/remote_endpoint.h                   |   44 -
 .../include/remote_endpoint_impl.h              |   38 -
 .../include/remote_proxy.h                      |   76 --
 .../include/remote_service_admin.h              |   73 --
 .../remote_service_admin_common/CMakeLists.txt  |   27 -
 .../src/endpoint_description.c                  |   89 --
 .../src/export_registration_impl.c              |  257 -----
 .../src/export_registration_impl.h              |   61 -
 .../src/import_registration_impl.c              |  274 -----
 .../src/import_registration_impl.h              |   81 --
 .../src/remote_proxy_factory_impl.c             |  252 -----
 .../src/remote_service_admin_impl.h             |   49 -
 .../remote_services_api/CMakeLists.txt          |   28 +
 remote_services/remote_services_api/README.md   |   11 +
 .../include/remote_constants.h                  |   31 +
 remote_services/rsa_common/CMakeLists.txt       |   29 +
 .../rsa_common/src/endpoint_description.c       |   89 ++
 .../rsa_common/src/export_registration_impl.c   |  257 +++++
 .../rsa_common/src/export_registration_impl.h   |   61 +
 .../rsa_common/src/import_registration_impl.c   |  274 +++++
 .../rsa_common/src/import_registration_impl.h   |   81 ++
 .../rsa_common/src/remote_proxy_factory_impl.c  |  252 +++++
 .../rsa_common/src/remote_service_admin_impl.h  |   49 +
 remote_services/rsa_spi/CMakeLists.txt          |   29 +
 remote_services/rsa_spi/README.md               |   11 +
 .../rsa_spi/include/endpoint_description.h      |   50 +
 .../rsa_spi/include/endpoint_listener.h         |   49 +
 .../rsa_spi/include/export_registration.h       |   22 +
 .../rsa_spi/include/import_registration.h       |   22 +
 .../rsa_spi/include/remote_constants.h          |   38 +
 .../rsa_spi/include/remote_endpoint.h           |   44 +
 .../rsa_spi/include/remote_endpoint_impl.h      |   38 +
 remote_services/rsa_spi/include/remote_proxy.h  |   76 ++
 .../rsa_spi/include/remote_service_admin.h      |   73 ++
 remote_services/topology_manager/CMakeLists.txt |    2 +-
 .../tms_tst/bundle/CMakeLists.txt               |    2 +-
 utils/CMakeLists.txt                            |   13 +-
 131 files changed, 7540 insertions(+), 7516 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d05ec8a..aa26d8e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -95,5 +95,9 @@ add_subdirectory(pubsub)
 add_subdirectory(dependency_manager)
 add_subdirectory(dependency_manager_cxx)
 
+
+#export targets
+install(EXPORT celix NAMESPACE Celix:: DESTINATION 
${CMAKE_INSTALL_LIBDIR}/celix)
+
 #Example as last, because some example will check if underlining options are 
enabled
 add_subdirectory(examples)

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/framework/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/framework/CMakeLists.txt b/framework/CMakeLists.txt
index a92910c..1716a7d 100644
--- a/framework/CMakeLists.txt
+++ b/framework/CMakeLists.txt
@@ -36,7 +36,10 @@ set(SOURCES
 )
 add_library(framework SHARED ${SOURCES})
 set_target_properties(framework PROPERTIES OUTPUT_NAME "celix_framework")
-target_include_directories(framework PUBLIC include)
+target_include_directories(framework PUBLIC
+        $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
+        $<INSTALL_INTERFACE:include/celix>
+)
 target_include_directories(framework PRIVATE
         src
         ${ZLIB_INCLUDE_DIR}
@@ -45,7 +48,6 @@ target_include_directories(framework PRIVATE
 )
 target_compile_definitions(framework PRIVATE -DUSE_FILE32API)
 
-include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
 set_target_properties(framework PROPERTIES "SOVERSION" 2)
 
 if(NOT APPLE)
@@ -54,16 +56,16 @@ endif()
 target_link_libraries(framework PUBLIC Celix::utils)
 target_link_libraries(framework PRIVATE ${UUID} ${ZLIB_LIBRARY} 
${CURL_LIBRARIES})
 
-install(TARGETS framework DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT 
framework)
+install(TARGETS framework EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} 
COMPONENT framework)
+install(DIRECTORY include/ DESTINATION include/celix COMPONENT framework)
+install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/" DESTINATION 
share/celix/cmake/modules COMPONENT framework
+    PATTERN "CMakeCelix-local.cmake" EXCLUDE
+)
+
 
 #Alias setup to match external usage
 add_library(Celix::framework ALIAS framework)
 
-install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/" DESTINATION 
share/celix/cmake/modules
-        COMPONENT framework
-        PATTERN "CMakeCelix-local.cmake" EXCLUDE
-)
-
 
 if (ENABLE_TESTING)
     find_package(CppUTest REQUIRED)

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/log_service/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/log_service/CMakeLists.txt b/log_service/CMakeLists.txt
index b9af374..70afb0e 100644
--- a/log_service/CMakeLists.txt
+++ b/log_service/CMakeLists.txt
@@ -19,12 +19,21 @@ celix_subproject(LOG_SERVICE "Option to enable building the 
Log Service bundles"
 if (LOG_SERVICE)
 
        add_library(log_service_api INTERFACE)
-       target_include_directories(log_service_api INTERFACE include)
+       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)
-       target_include_directories(log_helper PUBLIC loghelper_include)
+       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)
-       #TODO install log helper
+       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
        SYMBOLIC_NAME "apache_celix_log_service"

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/CMakeLists.txt b/pubsub/CMakeLists.txt
index 9d18175..79f8168 100644
--- a/pubsub/CMakeLists.txt
+++ b/pubsub/CMakeLists.txt
@@ -23,52 +23,24 @@ if (PUBSUB)
                message(WARNING "Celix will now contain a dependency with a 
LGPL License (ZeroMQ). For more information about this, consult the 
pubsub/README.md file.")
                option(BUILD_ZMQ_SECURITY "Build with security for ZeroMQ." OFF)
     endif (BUILD_PUBSUB_PSA_ZMQ)
-       
+
+       add_subdirectory(pubsub_api)
+       add_subdirectory(pubsub_spi)
        add_subdirectory(pubsub_topology_manager)
        add_subdirectory(pubsub_discovery)
        add_subdirectory(pubsub_serializer_json)
        add_subdirectory(pubsub_admin_zmq)
        add_subdirectory(pubsub_admin_udp_mc)
-       add_subdirectory(examples)
-       add_subdirectory(deploy)
        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)
                add_subdirectory(test)
        endif()
 
-       #api target
-       add_library(pubsub_api INTERFACE)
-       target_include_directories(pubsub_api INTERFACE api)
-
-       #install api
-       install(FILES api/pubsub/publisher.h api/pubsub/subscriber.h 
DESTINATION include/celix/pubsub COMPONENT framework)
-   
-   #install public common files
-   install(FILES
-      pubsub_common/public/include/pubsub_serializer.h
-      pubsub_common/public/include/pubsub_utils.h
-      pubsub_common/public/include/pubsub_common.h
-      pubsub_common/public/include/pubsub_endpoint.h
-      pubsub_common/public/include/pubsub_admin_match.h
-      pubsub_common/public/include/publisher_endpoint_announce.h
-      pubsub_common/public/include/pubsub_admin.h
-      DESTINATION include/celix/pubsub
-      COMPONENT framework
-   )
-   install(FILES
-      pubsub_common/public/src/pubsub_admin_match.c
-      pubsub_common/public/src/pubsub_utils.c
-      pubsub_common/public/src/pubsub_endpoint.c
-      DESTINATION share/celix/pubsub 
-      COMPONENT framework
-   )
-
-       #Setup target aliases to match external usage
-       add_library(Celix::pubsub_api ALIAS pubsub_api)
 endif(PUBSUB)

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/api/pubsub/publisher.h
----------------------------------------------------------------------
diff --git a/pubsub/api/pubsub/publisher.h b/pubsub/api/pubsub/publisher.h
deleted file mode 100644
index 3eec149..0000000
--- a/pubsub/api/pubsub/publisher.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements.  See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership.  The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-/*
- * publisher.h
- *
- *  \date       Jan 7, 2016
- *  \author            <a href="mailto:[email protected]";>Apache Celix 
Project Team</a>
- *  \copyright Apache License, Version 2.0
- */
-
-#ifndef __PUBSUB_PUBLISHER_H_
-#define __PUBSUB_PUBLISHER_H_
-
-#include <stdlib.h>
-
-#define PUBSUB_PUBLISHER_SERVICE_NAME           "pubsub.publisher"
-#define PUBSUB_PUBLISHER_SERVICE_VERSION             "2.0.0"
- 
-//properties
-#define PUBSUB_PUBLISHER_TOPIC                  "pubsub.topic"
-#define PUBSUB_PUBLISHER_SCOPE                  "pubsub.scope"
-#define PUBSUB_PUBLISHER_STRATEGY               "pubsub.strategy"
-#define PUBSUB_PUBLISHER_CONFIG                 "pubsub.config"
- 
-#define PUBSUB_PUBLISHER_SCOPE_DEFAULT                 "default"
-//flags
-#define PUBSUB_PUBLISHER_FIRST_MSG  01
-#define PUBSUB_PUBLISHER_PART_MSG   02
-#define PUBSUB_PUBLISHER_LAST_MSG   04
-
-struct pubsub_release_callback_struct {
-    void *handle;
-    void (*release)(char *buf, void *handle);
-};
-typedef struct pubsub_release_callback_struct pubsub_release_callback_t;
-typedef struct pubsub_release_callback_struct* pubsub_release_callback_pt;
- 
- 
-struct pubsub_publisher {
-    void *handle;
- 
-    /**
-     * Every msg is identifiable by msg type string. Because masg type string 
are performance wise not preferable (string compares),
-     * a "local" (int / platform dependent) unique id will be generated runtime
-     * with use of a distributed key/value store or communication between  
participation parties.
-     * this is called the local message type id. This local message type id 
can be requested with the localMsgIdForMsgType method.
-     * When return is successful the msgTypeId is always greater than 0. (Note 
this can be used to specify/detect uninitialized msg type ids in the consumer 
code).
-     *
-     * Returns 0 on success.
-     */
-    int (*localMsgTypeIdForMsgType)(void *handle, const char *msgType, 
unsigned int *msgTypeId);
-  
-    /**
-     * send is a async function, but the msg can be safely deleted after send 
returns.
-     * Returns 0 on success.
-     */
-    int (*send)(void *handle, unsigned int msgTypeId, const void *msg);
- 
-  
-    /**
-     * sendMultipart is a async function, but the msg can be safely deleted 
after send returns.
-     * The first (primary) message of a multipart message must have the flag 
PUBLISHER_PRIMARY_MSG
-     * The last message of a multipart message must have the flag 
PUBLISHER_LAST_MSG
-     * Returns 0 on success.
-     */
-    int (*sendMultipart)(void *handle, unsigned int msgTypeId, const void 
*msg, int flags);
- 
-};
-typedef struct pubsub_publisher pubsub_publisher_t;
-typedef struct pubsub_publisher* pubsub_publisher_pt;
-
-#endif // __PUBSUB_PUBLISHER_H_

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/api/pubsub/subscriber.h
----------------------------------------------------------------------
diff --git a/pubsub/api/pubsub/subscriber.h b/pubsub/api/pubsub/subscriber.h
deleted file mode 100644
index 5d87b8a..0000000
--- a/pubsub/api/pubsub/subscriber.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements.  See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership.  The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-/*
- * subscriber.h
- *
- *  \date       Jan 7, 2016
- *  \author            <a href="mailto:[email protected]";>Apache Celix 
Project Team</a>
- *  \copyright Apache License, Version 2.0
- */
-
-#ifndef __PUBSUB_SUBSCRIBER_H_
-#define __PUBSUB_SUBSCRIBER_H_
-
-#include <stdbool.h>
-
-#define PUBSUB_SUBSCRIBER_SERVICE_NAME          "pubsub.subscriber"
-#define PUBSUB_SUBSCRIBER_SERVICE_VERSION       "2.0.0"
- 
-//properties
-#define PUBSUB_SUBSCRIBER_TOPIC                "pubsub.topic"
-#define PUBSUB_SUBSCRIBER_SCOPE                "pubsub.scope"
-#define PUBSUB_SUBSCRIBER_STRATEGY             "pubsub.strategy"
-#define PUBSUB_SUBSCRIBER_CONFIG               "pubsub.config"
-
-#define PUBSUB_SUBSCRIBER_SCOPE_DEFAULT        "default"
- 
-struct pubsub_multipart_callbacks_struct {
-    void *handle;
-    int (*localMsgTypeIdForMsgType)(void *handle, const char *msgType, 
unsigned int *msgId);
-    int (*getMultipart)(void *handle, unsigned int msgTypeId, bool retain, 
void **part);
-};
-typedef struct pubsub_multipart_callbacks_struct pubsub_multipart_callbacks_t;
-typedef struct pubsub_multipart_callbacks_struct* 
pubsub_multipart_callbacks_pt;
- 
-struct pubsub_subscriber_struct {
-    void *handle;
-     
-    /**
-     * When a new message for a topic is available the receive will be called.
-     * 
-     * msgType contains fully qualified name of the type and msgTypeId is a 
local id which presents the type for performance reasons.
-     * Release can be used to instruct the pubsubadmin to release (free) the 
message when receive function returns. Set it to false to take
-     * over ownership of the msg (e.g. take the responsibility to free it).
-     *
-     * The callbacks argument is only valid inside the receive function, use 
the getMultipart callback, with retain=true, to keep multipart messages in 
memory.
-     * results of the localMsgTypeIdForMsgType callback are valid during the 
complete lifecycle of the component, not just a single receive call.
-     *
-     * Return 0 implies a successful handling. If return is not 0, the msg 
will always be released by the pubsubadmin.
-     *
-     * this method can be  NULL.
-     */
-    int (*receive)(void *handle, const char *msgType, unsigned int msgTypeId, 
void *msg, pubsub_multipart_callbacks_t *callbacks, bool *release);
-
-};
-typedef struct pubsub_subscriber_struct pubsub_subscriber_t;
-typedef struct pubsub_subscriber_struct* pubsub_subscriber_pt;
-
-
-#endif //  __PUBSUB_SUBSCRIBER_H_

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/deploy/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/deploy/CMakeLists.txt b/pubsub/deploy/CMakeLists.txt
deleted file mode 100644
index e76f91b..0000000
--- a/pubsub/deploy/CMakeLists.txt
+++ /dev/null
@@ -1,229 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-find_program(ETCD_CMD NAMES etcd)
-find_program(XTERM_CMD NAMES xterm)
-
-# UDP Multicast
-add_deploy(pubsub_publisher_udp_mc
-       GROUP pubsub
-       BUNDLES
-               Celix::shell
-               Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminUdpMc
-               org.apache.celix.pubsub_publisher.PoiPublisher
-               org.apache.celix.pubsub_publisher.PoiPublisher2
-)
-
-add_deploy("pubsub_subscriber_udp_mc"
-       GROUP "pubsub"
-       BUNDLES
-               Celix::shell
-               Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminUdpMc
-               org.apache.celix.pubsub_subscriber.PoiSubscriber
-)
-
-add_deploy("pubsub_subscriber2_udp_mc"
-       GROUP "pubsub"
-       BUNDLES
-               Celix::shell
-               Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminUdpMc
-               org.apache.celix.pubsub_subscriber.PoiSubscriber
-)
-
-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"
-           GROUP "pubsub"
-           BUNDLES
-                       Celix::shell
-                       Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminZmq
-               org.apache.celix.pubsub_admin.PubSubAdminUdpMc
-               org.apache.celix.pubsub_publisher.PoiPublisher
-               org.apache.celix.pubsub_publisher.PoiPublisher2
-           PROPERTIES
-               poi1.psa=zmq
-               poi2.psa=udp
-       )
-
-       add_deploy("pubsub_subscriber"
-           GROUP "pubsub"
-           BUNDLES
-                       Celix::shell
-                       Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminZmq
-               org.apache.celix.pubsub_admin.PubSubAdminUdpMc
-               org.apache.celix.pubsub_subscriber.PoiSubscriber
-           PROPERTIES
-               poi1.psa=zmq
-               poi2.psa=udp
-       )
-
-       # ZMQ
-       add_deploy("pubsub_zmq"
-           GROUP "pubsub"
-           BUNDLES
-                       Celix::shell
-                       Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminZmq
-               org.apache.celix.pubsub_publisher.PoiPublisher
-               org.apache.celix.pubsub_subscriber.PoiSubscriber
-       )
-
-       add_deploy("pubsub_publisher_zmq"
-           GROUP "pubsub"
-           BUNDLES
-                       Celix::shell
-                       Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminZmq
-               org.apache.celix.pubsub_publisher.PoiPublisher
-               org.apache.celix.pubsub_publisher.PoiPublisher2
-               PROPERTIES
-                   pubsub.scope=my_small_scope
-       )
-
-       add_deploy("pubsub_subscriber_zmq"
-           GROUP "pubsub"
-           BUNDLES
-                       Celix::shell
-                       Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminZmq
-               org.apache.celix.pubsub_subscriber.PoiSubscriber
-       )
-
-       add_deploy("pubsub_subscriber2_zmq"
-           GROUP "pubsub"
-           BUNDLES
-                       Celix::shell
-                       Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminZmq
-               org.apache.celix.pubsub_subscriber.PoiSubscriber
-
-       )
-
-       # ZMQ Multipart
-       add_deploy("pubsub_mp_subscriber_zmq"
-           GROUP "pubsub"
-           BUNDLES
-                       Celix::shell
-                       Celix::shell_tui
-               org.apache.celix.pubsub_serializer.PubSubSerializerJson
-               org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-               org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-               org.apache.celix.pubsub_admin.PubSubAdminZmq
-               org.apache.celix.pubsub_subscriber.MpSubscriber
-       )
-
-       add_deploy("pubsub_mp_publisher_zmq"
-           GROUP "pubsub"
-           BUNDLES
-                       Celix::shell
-                       Celix::shell_tui
-                       org.apache.celix.pubsub_serializer.PubSubSerializerJson
-                       org.apache.celix.pubsub_discovery.etcd.PubsubDiscovery
-                       
org.apache.celix.pubsub_topology_manager.PubSubTopologyManager
-                       org.apache.celix.pubsub_admin.PubSubAdminZmq
-                       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/81804e00/pubsub/examples/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/examples/CMakeLists.txt b/pubsub/examples/CMakeLists.txt
index 22ca5ca..b79b101 100644
--- a/pubsub/examples/CMakeLists.txt
+++ b/pubsub/examples/CMakeLists.txt
@@ -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
+        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"
+        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"
+        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"
+            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"
+            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"
+            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_poi_publisher
+            celix_pubsub_poi_subscriber
+            )
+
+    add_deploy("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"
+            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_poi_subscriber
+            )
+
+    add_deploy("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"
+            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"
+            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/81804e00/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt 
b/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt
index 1ef8645..e837d7f 100644
--- a/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt
+++ b/pubsub/examples/mp_pubsub/publisher/CMakeLists.txt
@@ -15,20 +15,15 @@
 # specific language governing permissions and limitations
 # under the License.
 
-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_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
        
${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/msg_descriptors/msg_ew.descriptor
@@ -46,5 +41,3 @@ bundle_files(org.apache.celix.pubsub_publisher.MpPublisher
                ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/subscriber/public
     DESTINATION "META-INF/keys/subscriber"
 )
-
-target_link_libraries(org.apache.celix.pubsub_publisher.MpPublisher PRIVATE 
Celix::framework)

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/mp_pubsub/publisher/private/include/mp_publisher_private.h
----------------------------------------------------------------------
diff --git 
a/pubsub/examples/mp_pubsub/publisher/private/include/mp_publisher_private.h 
b/pubsub/examples/mp_pubsub/publisher/private/include/mp_publisher_private.h
index a9c070f..9c227fd 100644
--- a/pubsub/examples/mp_pubsub/publisher/private/include/mp_publisher_private.h
+++ b/pubsub/examples/mp_pubsub/publisher/private/include/mp_publisher_private.h
@@ -29,7 +29,7 @@
 
 #include <celixbool.h>
 
-#include "publisher.h"
+#include "pubsub/publisher.h"
 
 struct pubsub_sender {
        array_list_pt trackers;

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/mp_pubsub/publisher/private/src/mp_pub_activator.c
----------------------------------------------------------------------
diff --git a/pubsub/examples/mp_pubsub/publisher/private/src/mp_pub_activator.c 
b/pubsub/examples/mp_pubsub/publisher/private/src/mp_pub_activator.c
index 5c8b145..464d1ab 100644
--- a/pubsub/examples/mp_pubsub/publisher/private/src/mp_pub_activator.c
+++ b/pubsub/examples/mp_pubsub/publisher/private/src/mp_pub_activator.c
@@ -32,11 +32,13 @@
 #include "service_tracker.h"
 #include "constants.h"
 
-#include "pubsub_common.h"
-#include "pubsub_utils.h"
 #include "mp_publisher_private.h"
 
-#define PUB_TOPIC "multipart"
+static const char * PUB_TOPICS[] = {
+               "multipart",
+               NULL
+};
+
 
 struct publisherActivator {
        pubsub_sender_pt client;
@@ -78,40 +80,28 @@ celix_status_t bundleActivator_start(void * userData, 
bundle_context_pt context)
 
        int i;
 
-       array_list_pt topic_list = pubsub_getTopicsFromString(PUB_TOPIC);
-
-       if(topic_list !=NULL){
-
+       if(PUB_TOPICS != NULL) {
                char filter[128];
+               for(i=0; PUB_TOPICS[i] != NULL; i++){
+                       const char* topic = PUB_TOPICS[i];
 
-               for(i=0; i<arrayList_size(topic_list);i++){
-                       char* topic = arrayList_get(topic_list,i);
-                       if(strlen(topic)<MAX_TOPIC_LEN){
-
-                               bundle_pt bundle = NULL;
-                               long bundleId = 0;
-                               bundleContext_getBundle(context,&bundle);
-                               bundle_getBundleId(bundle,&bundleId);
+                       bundle_pt bundle = NULL;
+                       long bundleId = 0;
+                       bundleContext_getBundle(context,&bundle);
+                       bundle_getBundleId(bundle,&bundleId);
 
-                               service_tracker_pt tracker = NULL;
-                               memset(filter,0,128);
+                       service_tracker_pt tracker = NULL;
+                       memset(filter,0,128);
 
-                               snprintf(filter, 128, "(&(%s=%s)(%s=%s))", 
(char*) OSGI_FRAMEWORK_OBJECTCLASS, PUBSUB_PUBLISHER_SERVICE_NAME, 
PUBSUB_PUBLISHER_TOPIC,topic);
+                       snprintf(filter, 128, "(&(%s=%s)(%s=%s))", (char*) 
OSGI_FRAMEWORK_OBJECTCLASS, PUBSUB_PUBLISHER_SERVICE_NAME, 
PUBSUB_PUBLISHER_TOPIC,topic);
 
-                               service_tracker_customizer_pt customizer = NULL;
+                       service_tracker_customizer_pt customizer = NULL;
 
-                               
serviceTrackerCustomizer_create(act->client,NULL,publisher_publishSvcAdded,NULL,publisher_publishSvcRemoved,&customizer);
-                               serviceTracker_createWithFilter(context, 
filter, customizer, &tracker);
+                       
serviceTrackerCustomizer_create(act->client,NULL,publisher_publishSvcAdded,NULL,publisher_publishSvcRemoved,&customizer);
+                       serviceTracker_createWithFilter(context, filter, 
customizer, &tracker);
 
-                               arrayList_add(act->trackerList,tracker);
-                       }
-                       else{
-                               printf("Topic %s too long. Skipping 
publication.\n",topic);
-                       }
-                       free(topic);
+                       arrayList_add(act->trackerList,tracker);
                }
-               arrayList_destroy(topic_list);
-
        }
 
        publisher_start(act->client);

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/mp_pubsub/publisher/private/src/mp_publisher.c
----------------------------------------------------------------------
diff --git a/pubsub/examples/mp_pubsub/publisher/private/src/mp_publisher.c 
b/pubsub/examples/mp_pubsub/publisher/private/src/mp_publisher.c
index fa53487..f47be29 100644
--- a/pubsub/examples/mp_pubsub/publisher/private/src/mp_publisher.c
+++ b/pubsub/examples/mp_pubsub/publisher/private/src/mp_publisher.c
@@ -32,7 +32,6 @@
 #include "service_tracker.h"
 #include "celix_threads.h"
 
-#include "pubsub_common.h"
 #include "ew.h"
 #include "ide.h"
 #include "kinematics.h"

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/mp_pubsub/subscriber/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/examples/mp_pubsub/subscriber/CMakeLists.txt 
b/pubsub/examples/mp_pubsub/subscriber/CMakeLists.txt
index e281ab1..858efb5 100644
--- a/pubsub/examples/mp_pubsub/subscriber/CMakeLists.txt
+++ b/pubsub/examples/mp_pubsub/subscriber/CMakeLists.txt
@@ -15,20 +15,15 @@
 # specific language governing permissions and limitations
 # under the License.
 
-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_bundle( org.apache.celix.pubsub_subscriber.MpSubscriber
+add_bundle(org.apache.celix.pubsub_subscriber.MpSubscriber
     SYMBOLIC_NAME "apache_celix_pubsub_mp_subscriber"
     VERSION "1.0.0"
     SOURCES 
                private/src/mp_sub_activator.c
                private/src/mp_subscriber.c
-               
${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_utils.c
 )
+target_link_libraries(org.apache.celix.pubsub_subscriber.MpSubscriber PRIVATE 
Celix::framework Celix::pubsub_api)
+target_include_directories(org.apache.celix.pubsub_subscriber.MpSubscriber 
PRIVATE private/include)
 
 bundle_files( org.apache.celix.pubsub_subscriber.MpSubscriber
     
${PROJECT_SOURCE_DIR}/pubsub/examples/mp_pubsub/msg_descriptors/msg_ew.descriptor
@@ -43,8 +38,6 @@ bundle_files(org.apache.celix.pubsub_subscriber.MpSubscriber
 )
 
 bundle_files(org.apache.celix.pubsub_subscriber.MpSubscriber
-               ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/publisher/public
+       ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/publisher/public
     DESTINATION "META-INF/keys/publisher"
-)
-
-target_link_libraries(org.apache.celix.pubsub_subscriber.MpSubscriber PRIVATE 
Celix::framework)
+)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/mp_pubsub/subscriber/private/include/mp_subscriber_private.h
----------------------------------------------------------------------
diff --git 
a/pubsub/examples/mp_pubsub/subscriber/private/include/mp_subscriber_private.h 
b/pubsub/examples/mp_pubsub/subscriber/private/include/mp_subscriber_private.h
index 1cc7270..2d582b3 100644
--- 
a/pubsub/examples/mp_pubsub/subscriber/private/include/mp_subscriber_private.h
+++ 
b/pubsub/examples/mp_pubsub/subscriber/private/include/mp_subscriber_private.h
@@ -32,8 +32,7 @@
 
 #include "celixbool.h"
 
-#include "pubsub_common.h"
-#include "subscriber.h"
+#include "pubsub/subscriber.h"
 
 struct pubsub_receiver {
        char * name;

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/mp_pubsub/subscriber/private/src/mp_sub_activator.c
----------------------------------------------------------------------
diff --git 
a/pubsub/examples/mp_pubsub/subscriber/private/src/mp_sub_activator.c 
b/pubsub/examples/mp_pubsub/subscriber/private/src/mp_sub_activator.c
index ecd4245..df9cb0f 100644
--- a/pubsub/examples/mp_pubsub/subscriber/private/src/mp_sub_activator.c
+++ b/pubsub/examples/mp_pubsub/subscriber/private/src/mp_sub_activator.c
@@ -26,17 +26,20 @@
 
 #include <stdlib.h>
 
+#include "pubsub/subscriber.h"
 #include "bundle_activator.h"
 
-#include "pubsub_common.h"
-#include "pubsub_utils.h"
 #include "mp_subscriber_private.h"
 
-#define SUB_TOPIC "multipart"
+#define SUB_NAME "multipart"
+static const char * SUB_TOPICS[] = {
+               "multipart",
+               NULL
+};
 
 struct subscriberActivator {
        array_list_pt registrationList; //List<service_registration_pt>
-       pubsub_subscriber_pt subsvc;
+       pubsub_subscriber_t* subsvc;
 };
 
 celix_status_t bundleActivator_create(bundle_context_pt context, void 
**userData) {
@@ -51,33 +54,24 @@ celix_status_t bundleActivator_start(void * userData, 
bundle_context_pt context)
 
 
        pubsub_subscriber_pt subsvc = calloc(1,sizeof(*subsvc));
-       pubsub_receiver_pt sub = subscriber_create(SUB_TOPIC);
+       pubsub_receiver_pt sub = subscriber_create(SUB_NAME);
        subsvc->handle = sub;
        subsvc->receive = pubsub_subscriber_recv;
 
        act->subsvc = subsvc;
 
-       array_list_pt topic_list = pubsub_getTopicsFromString(SUB_TOPIC);
-
-       if(topic_list !=NULL){
+       if (SUB_TOPICS !=NULL) {
 
                int i;
-               for(i=0; i<arrayList_size(topic_list);i++){
-                       char* topic = arrayList_get(topic_list,i);
-                       if(strlen(topic)<MAX_TOPIC_LEN){
-                               properties_pt props = properties_create();
-                               properties_set(props, 
PUBSUB_SUBSCRIBER_TOPIC,topic);
-                               service_registration_pt reg = NULL;
-                               bundleContext_registerService(context, 
PUBSUB_SUBSCRIBER_SERVICE_NAME, subsvc, props, &reg);
-                               arrayList_add(act->registrationList,reg);
-                       }
-                       else{
-                               printf("Topic %s too long. Skipping 
subscription.\n",topic);
-                       }
-                       free(topic);
+               for(i=0; SUB_TOPICS[i] != NULL; i++){
+                       const char* topic = SUB_TOPICS[i];
+
+                       properties_pt props = properties_create();
+                       properties_set(props, PUBSUB_SUBSCRIBER_TOPIC,topic);
+                       service_registration_pt reg = NULL;
+                       bundleContext_registerService(context, 
PUBSUB_SUBSCRIBER_SERVICE_NAME, subsvc, props, &reg);
+                       arrayList_add(act->registrationList,reg);
                }
-               arrayList_destroy(topic_list);
-
        }
 
        subscriber_start((pubsub_receiver_pt)act->subsvc->handle);

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/pubsub/publisher/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/examples/pubsub/publisher/CMakeLists.txt 
b/pubsub/examples/pubsub/publisher/CMakeLists.txt
index fcf50c7..43eabd8 100644
--- a/pubsub/examples/pubsub/publisher/CMakeLists.txt
+++ b/pubsub/examples/pubsub/publisher/CMakeLists.txt
@@ -15,40 +15,35 @@
 # specific language governing permissions and limitations
 # under the License.
 
-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")
-
-add_bundle(org.apache.celix.pubsub_publisher.PoiPublisher
+add_bundle(celix_pubsub_poi_publisher
     SYMBOLIC_NAME "apache_celix_pubsub_poi_publisher"
     VERSION "1.0.0"
     SOURCES 
        private/src/ps_pub_activator.c
        private/src/pubsub_publisher.c
-       ${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_utils.c    
 )
 
-bundle_files(org.apache.celix.pubsub_publisher.PoiPublisher
+target_link_libraries(celix_pubsub_poi_publisher PRIVATE Celix::framework 
Celix::pubsub_api)
+target_include_directories(celix_pubsub_poi_publisher PRIVATE private/include)
+
+bundle_files(celix_pubsub_poi_publisher
                
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/msg_poi1.descriptor
                
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/msg_poi2.descriptor
     DESTINATION "META-INF/descriptors"
 )
 
-bundle_files(org.apache.celix.pubsub_publisher.PoiPublisher
+bundle_files(celix_pubsub_poi_publisher
                
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/poi1.properties
                
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/poi2.properties
     DESTINATION "META-INF/topics/pub"
 )
 
-bundle_files(org.apache.celix.pubsub_publisher.PoiPublisher
+bundle_files(celix_pubsub_poi_publisher
                ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/publisher
     DESTINATION "META-INF/keys"
 )
 
-bundle_files(org.apache.celix.pubsub_publisher.PoiPublisher
+bundle_files(celix_pubsub_poi_publisher
                ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/subscriber/public
     DESTINATION "META-INF/keys/subscriber"
 )
-
-target_link_libraries(org.apache.celix.pubsub_publisher.PoiPublisher PRIVATE 
Celix::framework)

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/pubsub/publisher/private/include/pubsub_publisher_private.h
----------------------------------------------------------------------
diff --git 
a/pubsub/examples/pubsub/publisher/private/include/pubsub_publisher_private.h 
b/pubsub/examples/pubsub/publisher/private/include/pubsub_publisher_private.h
index 834dada..56ec678 100644
--- 
a/pubsub/examples/pubsub/publisher/private/include/pubsub_publisher_private.h
+++ 
b/pubsub/examples/pubsub/publisher/private/include/pubsub_publisher_private.h
@@ -29,7 +29,7 @@
 
 #include <celixbool.h>
 #include <pthread.h>
-#include "publisher.h"
+#include "pubsub/publisher.h"
 
 struct pubsub_sender {
        array_list_pt trackers;

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/pubsub/publisher/private/src/ps_pub_activator.c
----------------------------------------------------------------------
diff --git a/pubsub/examples/pubsub/publisher/private/src/ps_pub_activator.c 
b/pubsub/examples/pubsub/publisher/private/src/ps_pub_activator.c
index e6c7a3b..a1f2dc8 100644
--- a/pubsub/examples/pubsub/publisher/private/src/ps_pub_activator.c
+++ b/pubsub/examples/pubsub/publisher/private/src/ps_pub_activator.c
@@ -32,12 +32,15 @@
 #include "service_tracker.h"
 #include "constants.h"
 
-#include "pubsub_common.h"
-#include "pubsub_utils.h"
-#include "publisher.h"
+#include "pubsub/publisher.h"
 #include "pubsub_publisher_private.h"
 
-#define PUB_TOPIC "poi1;poi2"
+static const char * PUB_TOPICS[] = {
+               "poi1",
+               "poi2",
+               NULL
+};
+
 
 struct publisherActivator {
        pubsub_sender_pt client;
@@ -73,22 +76,19 @@ celix_status_t bundleActivator_start(void * userData, 
bundle_context_pt context)
        struct publisherActivator * act = (struct publisherActivator *) 
userData;
 
        int i;
-       array_list_pt topic_list = pubsub_getTopicsFromString(PUB_TOPIC);
-
-       if(topic_list !=NULL){
+       if(PUB_TOPICS !=NULL){
 
                char filter[128];
-               for(i=0; i<arrayList_size(topic_list);i++){
-                       char* topic = arrayList_get(topic_list,i);
-                       if(strlen(topic)<MAX_TOPIC_LEN){
+               for(i=0; PUB_TOPICS[i] != NULL; i++){
+                       const char* topic = PUB_TOPICS[i];
 
-                               bundle_pt bundle = NULL;
-                               long bundleId = 0;
-                               bundleContext_getBundle(context,&bundle);
-                               bundle_getBundleId(bundle,&bundleId);
+                       bundle_pt bundle = NULL;
+                       long bundleId = 0;
+                       bundleContext_getBundle(context,&bundle);
+                       bundle_getBundleId(bundle,&bundleId);
 
-                               service_tracker_pt tracker = NULL;
-                               memset(filter,0,128);
+                       service_tracker_pt tracker = NULL;
+                       memset(filter,0,128);
 #ifdef USE_SCOPE
                                char *scope;
                                asprintf(&scope, "my_scope_%d", i);
@@ -98,23 +98,15 @@ celix_status_t bundleActivator_start(void * userData, 
bundle_context_pt context)
                                                PUBLISHER_SCOPE, scope);
                                free(scope);
 #else
-                               snprintf(filter, 128, "(&(%s=%s)(%s=%s))",
-                                         (char*) OSGI_FRAMEWORK_OBJECTCLASS, 
PUBSUB_PUBLISHER_SERVICE_NAME,
-                                                 PUBSUB_PUBLISHER_TOPIC, 
topic);
+                       snprintf(filter, 128, "(&(%s=%s)(%s=%s))", (char*) 
OSGI_FRAMEWORK_OBJECTCLASS, PUBSUB_PUBLISHER_SERVICE_NAME, 
PUBSUB_PUBLISHER_TOPIC, topic);
 #endif
-                               service_tracker_customizer_pt customizer = NULL;
-                               
serviceTrackerCustomizer_create(act->client,NULL,publisher_publishSvcAdded,NULL,publisher_publishSvcRemoved,&customizer);
-                               serviceTracker_createWithFilter(context, 
filter, customizer, &tracker);
-
-                               arrayList_add(act->trackerList,tracker);
-                       }
-                       else{
-                               printf("Topic %s too long. Skipping 
publication.\n",topic);
-                       }
-                       free(topic);
-               }
-               arrayList_destroy(topic_list);
+                       service_tracker_customizer_pt customizer = NULL;
+                       
serviceTrackerCustomizer_create(act->client,NULL,publisher_publishSvcAdded,NULL,publisher_publishSvcRemoved,&customizer);
+                       serviceTracker_createWithFilter(context, filter, 
customizer, &tracker);
+
+                       arrayList_add(act->trackerList,tracker);
 
+               }
        }
 
        publisher_start(act->client);

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/pubsub/publisher/private/src/pubsub_publisher.c
----------------------------------------------------------------------
diff --git a/pubsub/examples/pubsub/publisher/private/src/pubsub_publisher.c 
b/pubsub/examples/pubsub/publisher/private/src/pubsub_publisher.c
index 7e7602e..9a7aedc 100644
--- a/pubsub/examples/pubsub/publisher/private/src/pubsub_publisher.c
+++ b/pubsub/examples/pubsub/publisher/private/src/pubsub_publisher.c
@@ -32,7 +32,6 @@
 #include "service_tracker.h"
 #include "celix_threads.h"
 
-#include "pubsub_common.h"
 #include "poi.h"
 
 #include "pubsub_publisher_private.h"

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/pubsub/publisher2/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/examples/pubsub/publisher2/CMakeLists.txt 
b/pubsub/examples/pubsub/publisher2/CMakeLists.txt
index 82ffb75..ba007c2 100644
--- a/pubsub/examples/pubsub/publisher2/CMakeLists.txt
+++ b/pubsub/examples/pubsub/publisher2/CMakeLists.txt
@@ -15,40 +15,37 @@
 # specific language governing permissions and limitations
 # under the License.
 
-include_directories("../publisher/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")
-
-add_bundle(org.apache.celix.pubsub_publisher.PoiPublisher2
+add_bundle(celix_pubsub_poi_publisher2
     SYMBOLIC_NAME "apache_celix_pubsub_poi_publisher2"
     VERSION "1.0.0"
     SOURCES 
        ../publisher/private/src/ps_pub_activator.c
        ../publisher/private/src/pubsub_publisher.c
-       ${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_utils.c
 )
+target_link_libraries(celix_pubsub_poi_publisher2 PRIVATE Celix::framework 
Celix::pubsub_api)
+target_include_directories(celix_pubsub_poi_publisher2 PRIVATE 
../publisher/private/include)
+
 
-bundle_files(org.apache.celix.pubsub_publisher.PoiPublisher2
+bundle_files(celix_pubsub_poi_publisher2
        
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/msg_poi1.descriptor
        
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/msg_poi2.descriptor
     DESTINATION "META-INF/descriptors"
 )
 
-bundle_files(org.apache.celix.pubsub_publisher.PoiPublisher2
+bundle_files(celix_pubsub_poi_publisher2
                
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/poi1.properties
                
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/poi2.properties
     DESTINATION "META-INF/topics/pub"
 )
 
-bundle_files(org.apache.celix.pubsub_publisher.PoiPublisher2
+bundle_files(celix_pubsub_poi_publisher2
                ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/publisher
     DESTINATION "META-INF/keys"
 )
 
-bundle_files(org.apache.celix.pubsub_publisher.PoiPublisher2
-               ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/subscriber/public
+bundle_files(celix_pubsub_poi_publisher2
+       ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/subscriber/public
     DESTINATION "META-INF/keys/subscriber"
 )
 
-target_link_libraries(org.apache.celix.pubsub_publisher.PoiPublisher2 PRIVATE 
Celix::framework)
+target_link_libraries(celix_pubsub_poi_publisher2 PRIVATE Celix::framework)

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/pubsub/subscriber/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/examples/pubsub/subscriber/CMakeLists.txt 
b/pubsub/examples/pubsub/subscriber/CMakeLists.txt
index 28569b0..1ffd39a 100644
--- a/pubsub/examples/pubsub/subscriber/CMakeLists.txt
+++ b/pubsub/examples/pubsub/subscriber/CMakeLists.txt
@@ -15,41 +15,36 @@
 # specific language governing permissions and limitations
 # under the License.
 
-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/pubsub/common/include")
-
-add_bundle(org.apache.celix.pubsub_subscriber.PoiSubscriber
+add_bundle(celix_pubsub_poi_subscriber
     SYMBOLIC_NAME "apache_celix_pubsub_poi_subscriber" 
     VERSION "1.0.0"
     SOURCES 
        private/src/ps_sub_activator.c
-       private/src/pubsub_subscriber.c
-       ${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_utils.c
+               private/src/pubsub_subscriber.c
 )
 
-bundle_files(org.apache.celix.pubsub_subscriber.PoiSubscriber
+target_link_libraries(celix_pubsub_poi_subscriber PRIVATE Celix::framework 
Celix::pubsub_api)
+target_include_directories(celix_pubsub_poi_subscriber PRIVATE private/include)
+
+
+bundle_files(celix_pubsub_poi_subscriber
            
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/msg_poi1.descriptor
            
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/msg_poi2.descriptor
     DESTINATION "META-INF/descriptors"
 )
 
-bundle_files(org.apache.celix.pubsub_subscriber.PoiSubscriber
+bundle_files(celix_pubsub_poi_subscriber
                
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/poi1.properties
                
${PROJECT_SOURCE_DIR}/pubsub/examples/pubsub/msg_descriptors/poi2.properties
     DESTINATION "META-INF/topics/sub"
 )
 
-bundle_files(org.apache.celix.pubsub_subscriber.PoiSubscriber
+bundle_files(celix_pubsub_poi_subscriber
                ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/subscriber
     DESTINATION "META-INF/keys"
 )
 
-bundle_files(org.apache.celix.pubsub_subscriber.PoiSubscriber
+bundle_files(celix_pubsub_poi_subscriber
                ${PROJECT_SOURCE_DIR}/pubsub/examples/keys/publisher/public
     DESTINATION "META-INF/keys/publisher"
-)
-
-target_link_libraries(org.apache.celix.pubsub_subscriber.PoiSubscriber PRIVATE 
Celix::framework)
+)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/pubsub/subscriber/private/include/pubsub_subscriber_private.h
----------------------------------------------------------------------
diff --git 
a/pubsub/examples/pubsub/subscriber/private/include/pubsub_subscriber_private.h 
b/pubsub/examples/pubsub/subscriber/private/include/pubsub_subscriber_private.h
index c6072df..00ca9b4 100644
--- 
a/pubsub/examples/pubsub/subscriber/private/include/pubsub_subscriber_private.h
+++ 
b/pubsub/examples/pubsub/subscriber/private/include/pubsub_subscriber_private.h
@@ -32,8 +32,7 @@
 
 #include "celixbool.h"
 
-#include "pubsub_common.h"
-#include "subscriber.h"
+#include "pubsub/subscriber.h"
 
 struct pubsub_receiver {
        char * name;

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/examples/pubsub/subscriber/private/src/ps_sub_activator.c
----------------------------------------------------------------------
diff --git a/pubsub/examples/pubsub/subscriber/private/src/ps_sub_activator.c 
b/pubsub/examples/pubsub/subscriber/private/src/ps_sub_activator.c
index efd34c9..4738abd 100644
--- a/pubsub/examples/pubsub/subscriber/private/src/ps_sub_activator.c
+++ b/pubsub/examples/pubsub/subscriber/private/src/ps_sub_activator.c
@@ -25,14 +25,18 @@
  */
 
 #include <stdlib.h>
+#include <pubsub/subscriber.h>
 
 #include "bundle_activator.h"
 
-#include "pubsub_common.h"
-#include "pubsub_utils.h"
 #include "pubsub_subscriber_private.h"
 
-#define SUB_TOPIC "poi1;poi2"
+#define SUB_NAME "poi1;poi2"
+static const char * SUB_TOPICS[] = {
+               "poi1",
+               "poi2",
+               NULL
+};
 
 struct subscriberActivator {
        array_list_pt registrationList; //List<service_registration_pt>
@@ -51,39 +55,29 @@ celix_status_t bundleActivator_start(void * userData, 
bundle_context_pt context)
 
 
        pubsub_subscriber_pt subsvc = calloc(1,sizeof(*subsvc));
-       pubsub_receiver_pt sub = subscriber_create(SUB_TOPIC);
+       pubsub_receiver_pt sub = subscriber_create(SUB_NAME);
        subsvc->handle = sub;
        subsvc->receive = pubsub_subscriber_recv;
 
        act->subsvc = subsvc;
 
-       array_list_pt topic_list = pubsub_getTopicsFromString(SUB_TOPIC);
-
-       if(topic_list !=NULL){
+       if (SUB_TOPICS !=NULL){
 
                int i;
-               for(i=0; i<arrayList_size(topic_list);i++){
-                       char* topic = arrayList_get(topic_list,i);
-                       if(strlen(topic)<MAX_TOPIC_LEN){
-                               properties_pt props = properties_create();
-                               properties_set(props, 
PUBSUB_SUBSCRIBER_TOPIC,topic);
+               for(i=0; SUB_TOPICS[i] != NULL ;i++){
+                       const char* topic = SUB_TOPICS[i];
+                       properties_pt props = properties_create();
+                       properties_set(props, PUBSUB_SUBSCRIBER_TOPIC,topic);
 #ifdef USE_SCOPE
                                char *scope;
                                asprintf(&scope, "my_scope_%d", i);
                                properties_set(props,SUBSCRIBER_SCOPE,scope);
                                free(scope);
 #endif
-                               service_registration_pt reg = NULL;
-                               bundleContext_registerService(context, 
PUBSUB_SUBSCRIBER_SERVICE_NAME, subsvc, props, &reg);
-                               arrayList_add(act->registrationList,reg);
-                       }
-                       else{
-                               printf("Topic %s too long. Skipping 
subscription.\n",topic);
-                       }
-                       free(topic);
+                       service_registration_pt reg = NULL;
+                       bundleContext_registerService(context, 
PUBSUB_SUBSCRIBER_SERVICE_NAME, subsvc, props, &reg);
+                       arrayList_add(act->registrationList,reg);
                }
-               arrayList_destroy(topic_list);
-
        }
 
        subscriber_start((pubsub_receiver_pt)act->subsvc->handle);

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/mock/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/mock/CMakeLists.txt b/pubsub/mock/CMakeLists.txt
index 6313987..ccc3d20 100644
--- a/pubsub/mock/CMakeLists.txt
+++ b/pubsub/mock/CMakeLists.txt
@@ -18,28 +18,22 @@
 #only install if CppuTest is available
 find_package(CppUTest QUIET)
 if (CPPUTEST_FOUND)
-    include_directories(
-        ../api
-        api
+
+    add_library(celix_pubsub_mock STATIC
+            src/publisher_mock.cc
     )
-    include_directories(SYSTEM
+    target_include_directories(celix_pubsub_mock PUBLIC api)
+    target_link_libraries(celix_pubsub_mock PRIVATE Celix::pubsub_spi 
${CPPUTEST_LIBRARY})
+    target_include_directories(celix_pubsub_mock PRIVATE SYSTEM
         ${CPPUTEST_INCLUDE_DIR}
     )
 
-    add_library(celix_pubsubmock STATIC
-        src/publisher_mock.cc
-            ../test/test/msg.h)
-    target_link_libraries(celix_pubsubmock ${CPPUTEST_LIBRARY})
-
-    install(TARGETS celix_pubsubmock DESTINATION ${CMAKE_INSTALL_LIBDIR} 
COMPONENT framework)
-    install(FILES api/pubsub/publisher_mock.h DESTINATION include/celix/pubsub 
COMPONENT framework)
-
     if (ENABLE_TESTING)
         add_executable(pubsubmock_test
             tst/pubsubmock_test.cc
             tst/run_tests.cc
         )
-        target_link_libraries(pubsubmock_test celix_pubsubmock 
${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY})
+        target_link_libraries(pubsubmock_test celix_pubsub_mock 
${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::framework)
         add_test(NAME pubsubmock_test COMMAND pubsubmock_test)
     endif()
 endif()

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_udp_mc/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_udp_mc/CMakeLists.txt 
b/pubsub/pubsub_admin_udp_mc/CMakeLists.txt
index a57693f..87858e3 100644
--- a/pubsub/pubsub_admin_udp_mc/CMakeLists.txt
+++ b/pubsub/pubsub_admin_udp_mc/CMakeLists.txt
@@ -17,7 +17,7 @@
 
 find_package(Jansson REQUIRED)
 
-add_bundle(org.apache.celix.pubsub_admin.PubSubAdminUdpMc
+add_bundle(celix_pubsub_admin_udp_multicast
        BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_udp_multicast"
        VERSION "1.0.0"
        SOURCES
@@ -26,20 +26,19 @@ add_bundle(org.apache.celix.pubsub_admin.PubSubAdminUdpMc
         src/topic_subscription.c
         src/topic_publication.c
         src/large_udp.c
-               
${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_endpoint.c
-               
${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_admin_match.c
-               
${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_utils.c
 )
 
 
-target_include_directories(org.apache.celix.pubsub_admin.PubSubAdminUdpMc 
PRIVATE
+target_include_directories(celix_pubsub_admin_udp_multicast PRIVATE
                src
                ${JANSSON_INCLUDE_DIR}
 )
 
-set_target_properties(org.apache.celix.pubsub_admin.PubSubAdminUdpMc 
PROPERTIES INSTALL_RPATH "$ORIGIN")
-target_link_libraries(org.apache.celix.pubsub_admin.PubSubAdminUdpMc PRIVATE 
Celix::framework Celix::dfi Celix::log_helper)
+set_target_properties(celix_pubsub_admin_udp_multicast PROPERTIES 
INSTALL_RPATH "$ORIGIN")
+target_link_libraries(celix_pubsub_admin_udp_multicast PRIVATE 
Celix::pubsub_spi Celix::framework Celix::dfi Celix::log_helper)
 
-install_bundle(org.apache.celix.pubsub_admin.PubSubAdminUdpMc)
+install_bundle(celix_pubsub_admin_udp_multicast)
+
+add_library(Celix::pubsub_admin_udp_multicast ALIAS 
celix_pubsub_admin_udp_multicast)
 
 

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_udp_mc/src/pubsub_admin_impl.c
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_udp_mc/src/pubsub_admin_impl.c 
b/pubsub/pubsub_admin_udp_mc/src/pubsub_admin_impl.c
index 1fbdb08..674f817 100644
--- a/pubsub/pubsub_admin_udp_mc/src/pubsub_admin_impl.c
+++ b/pubsub/pubsub_admin_udp_mc/src/pubsub_admin_impl.c
@@ -59,7 +59,7 @@
 #include "topic_subscription.h"
 #include "topic_publication.h"
 #include "pubsub_endpoint.h"
-#include "subscriber.h"
+#include "pubsub/subscriber.h"
 #include "pubsub_admin_match.h"
 
 static const char *DEFAULT_MC_IP = "224.100.1.1";

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_udp_mc/src/topic_publication.c
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_udp_mc/src/topic_publication.c 
b/pubsub/pubsub_admin_udp_mc/src/topic_publication.c
index 44106df..15af108 100644
--- a/pubsub/pubsub_admin_udp_mc/src/topic_publication.c
+++ b/pubsub/pubsub_admin_udp_mc/src/topic_publication.c
@@ -36,7 +36,7 @@
 
 #include "topic_publication.h"
 #include "pubsub_common.h"
-#include "publisher.h"
+#include "pubsub/publisher.h"
 #include "large_udp.h"
 
 #include "pubsub_serializer.h"

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_udp_mc/src/topic_publication.h
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_udp_mc/src/topic_publication.h 
b/pubsub/pubsub_admin_udp_mc/src/topic_publication.h
index 4363d71..8f47deb 100644
--- a/pubsub/pubsub_admin_udp_mc/src/topic_publication.h
+++ b/pubsub/pubsub_admin_udp_mc/src/topic_publication.h
@@ -27,7 +27,7 @@
 #ifndef TOPIC_PUBLICATION_H_
 #define TOPIC_PUBLICATION_H_
 
-#include "publisher.h"
+#include "pubsub/publisher.h"
 #include "pubsub_endpoint.h"
 #include "pubsub_common.h"
 

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_udp_mc/src/topic_subscription.c
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_udp_mc/src/topic_subscription.c 
b/pubsub/pubsub_admin_udp_mc/src/topic_subscription.c
index d8e6f45..6d0768b 100644
--- a/pubsub/pubsub_admin_udp_mc/src/topic_subscription.c
+++ b/pubsub/pubsub_admin_udp_mc/src/topic_subscription.c
@@ -42,8 +42,8 @@
 
 #include "topic_subscription.h"
 #include "topic_publication.h"
-#include "subscriber.h"
-#include "publisher.h"
+#include "pubsub/subscriber.h"
+#include "pubsub/publisher.h"
 #include "large_udp.h"
 
 #include "pubsub_serializer.h"

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_zmq/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_zmq/CMakeLists.txt 
b/pubsub/pubsub_admin_zmq/CMakeLists.txt
index d71aedb..9d57756 100644
--- a/pubsub/pubsub_admin_zmq/CMakeLists.txt
+++ b/pubsub/pubsub_admin_zmq/CMakeLists.txt
@@ -21,17 +21,6 @@ if (BUILD_PUBSUB_PSA_ZMQ)
        find_package(CZMQ REQUIRED)
        find_package(Jansson REQUIRED)
 
-       include_directories("${ZMQ_INCLUDE_DIR}")
-       include_directories("${CZMQ_INCLUDE_DIR}")
-       include_directories("${JANSSON_INCLUDE_DIR}")
-       include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
-       include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include")
-       include_directories("${PROJECT_SOURCE_DIR}/dfi/public/include")
-       
include_directories("${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/include")
-       include_directories("${PROJECT_SOURCE_DIR}/pubsub/api/pubsub")
-       include_directories("private/include")
-       include_directories("public/include")
-
        if (BUILD_ZMQ_SECURITY)
                add_definitions(-DBUILD_WITH_ZMQ_SECURITY=1)
 
@@ -41,24 +30,31 @@ if (BUILD_PUBSUB_PSA_ZMQ)
                set (ZMQ_CRYPTO_C "private/src/zmq_crypto.c")
        endif()
 
-       add_bundle(org.apache.celix.pubsub_admin.PubSubAdminZmq
-           BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_zmq"
-           VERSION "1.0.0"
-           SOURCES
-               private/src/psa_activator.c
-               private/src/pubsub_admin_impl.c
-               private/src/topic_subscription.c
-               private/src/topic_publication.c
-               ${ZMQ_CRYPTO_C}
-               
${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_endpoint.c
-               
${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_utils.c
-          
${PROJECT_SOURCE_DIR}/pubsub/pubsub_common/public/src/pubsub_admin_match.c
+       add_bundle(celix_pubsub_admin_zmq
+                       BUNDLE_SYMBOLICNAME "apache_celix_pubsub_admin_zmq"
+                       VERSION "1.0.0"
+                       SOURCES
+                       src/psa_activator.c
+                       src/pubsub_admin_impl.c
+                       src/topic_subscription.c
+                       src/topic_publication.c
+                       ${ZMQ_CRYPTO_C}
        )
 
-       set_target_properties(org.apache.celix.pubsub_admin.PubSubAdminZmq 
PROPERTIES INSTALL_RPATH "$ORIGIN")
-       target_link_libraries(org.apache.celix.pubsub_admin.PubSubAdminZmq 
PRIVATE
+       set_target_properties(celix_pubsub_admin_zmq PROPERTIES INSTALL_RPATH 
"$ORIGIN")
+       target_link_libraries(celix_pubsub_admin_zmq PRIVATE
+                       Celix::pubsub_spi
                        Celix::framework Celix::dfi Celix::log_helper
-                       ${ZMQ_LIBRARIES} ${CZMQ_LIBRARIES} 
${OPENSSL_CRYPTO_LIBRARY})
+                       ${ZMQ_LIBRARIES} ${CZMQ_LIBRARIES} 
${OPENSSL_CRYPTO_LIBRARY}
+       )
+       target_include_directories(celix_pubsub_admin_zmq PRIVATE
+               ${ZMQ_INCLUDE_DIR}
+               ${CZMQ_INCLUDE_DIR}
+               ${JANSSON_INCLUDE_DIR}
+               src
+       )
+
        install_bundle(org.apache.celix.pubsub_admin.PubSubAdminZmq)
 
+       add_library(Celix::pubsub_admin_zmq ALIAS celix_pubsub_admin_zmq)
 endif()

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_zmq/private/include/pubsub_admin_impl.h
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_zmq/private/include/pubsub_admin_impl.h 
b/pubsub/pubsub_admin_zmq/private/include/pubsub_admin_impl.h
deleted file mode 100644
index 03e8556..0000000
--- a/pubsub/pubsub_admin_zmq/private/include/pubsub_admin_impl.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements.  See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership.  The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-/*
- * pubsub_admin_impl.h
- *
- *  \date       Dec 5, 2013
- *  \author            <a href="mailto:[email protected]";>Apache Celix 
Project Team</a>
- *  \copyright Apache License, Version 2.0
- */
-
-#ifndef PUBSUB_ADMIN_ZMQ_IMPL_H_
-#define PUBSUB_ADMIN_ZMQ_IMPL_H_
-
-#include <czmq.h>
-/* The following undefs prevent the collision between:
- * - sys/syslog.h (which is included within czmq)
- * - celix/dfi/dfi_log_util.h
- */
-#undef LOG_DEBUG
-#undef LOG_WARNING
-#undef LOG_INFO
-#undef LOG_WARNING
-
-#include "pubsub_admin.h"
-#include "pubsub_admin_match.h"
-#include "log_helper.h"
-
-#define PSA_ZMQ_BASE_PORT "PSA_ZMQ_BASE_PORT"
-#define PSA_ZMQ_MAX_PORT "PSA_ZMQ_MAX_PORT"
-
-#define PSA_ZMQ_DEFAULT_BASE_PORT 5501
-#define PSA_ZMQ_DEFAULT_MAX_PORT 6000
-
-#define PUBSUB_ADMIN_TYPE      "zmq"
-
-struct pubsub_admin {
-
-       bundle_context_pt bundle_context;
-       log_helper_pt loghelper;
-
-       /* List of the available serializers */
-       celix_thread_mutex_t serializerListLock; // List<serializers>
-       array_list_pt serializerList;
-
-       celix_thread_mutex_t localPublicationsLock;
-       hash_map_pt localPublications;//<topic(string),service_factory_pt>
-
-       celix_thread_mutex_t externalPublicationsLock;
-       hash_map_pt externalPublications;//<topic(string),List<pubsub_ep>>
-
-       celix_thread_mutex_t subscriptionsLock;
-       hash_map_pt subscriptions; //<topic(string),topic_subscription>
-
-       celix_thread_mutex_t pendingSubscriptionsLock;
-       celix_thread_mutexattr_t pendingSubscriptionsAttr;
-       hash_map_pt pendingSubscriptions; //<topic(string),List<pubsub_ep>>
-
-       /* Those are used to keep track of valid subscriptions/publications 
that still have no valid serializer */
-       celix_thread_mutex_t noSerializerPendingsLock;
-       celix_thread_mutexattr_t noSerializerPendingsAttr;
-       array_list_pt noSerializerSubscriptions; // List<pubsub_ep>
-       array_list_pt noSerializerPublications; // List<pubsub_ep>
-
-       celix_thread_mutex_t usedSerializersLock;
-       hash_map_pt topicSubscriptionsPerSerializer; // 
<serializer,List<topicSubscription>>
-       hash_map_pt topicPublicationsPerSerializer; // 
<serializer,List<topicPublications>>
-
-       char* ipAddress;
-
-       zactor_t* zmq_auth;
-
-    unsigned int basePort;
-    unsigned int maxPort;
-};
-
-celix_status_t pubsubAdmin_create(bundle_context_pt context, pubsub_admin_pt 
*admin);
-celix_status_t pubsubAdmin_destroy(pubsub_admin_pt admin);
-
-celix_status_t pubsubAdmin_addSubscription(pubsub_admin_pt 
admin,pubsub_endpoint_pt subEP);
-celix_status_t pubsubAdmin_removeSubscription(pubsub_admin_pt 
admin,pubsub_endpoint_pt subEP);
-
-celix_status_t pubsubAdmin_addPublication(pubsub_admin_pt 
admin,pubsub_endpoint_pt pubEP);
-celix_status_t pubsubAdmin_removePublication(pubsub_admin_pt 
admin,pubsub_endpoint_pt pubEP);
-
-celix_status_t pubsubAdmin_closeAllPublications(pubsub_admin_pt admin,char* 
scope, char* topic);
-celix_status_t pubsubAdmin_closeAllSubscriptions(pubsub_admin_pt admin,char* 
scope,char* topic);
-
-celix_status_t pubsubAdmin_serializerAdded(void * handle, service_reference_pt 
reference, void * service);
-celix_status_t pubsubAdmin_serializerRemoved(void * handle, 
service_reference_pt reference, void * service);
-
-celix_status_t pubsubAdmin_matchEndpoint(pubsub_admin_pt admin, 
pubsub_endpoint_pt endpoint, double* score);
-
-#endif /* PUBSUB_ADMIN_ZMQ_IMPL_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_zmq/private/include/topic_publication.h
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_zmq/private/include/topic_publication.h 
b/pubsub/pubsub_admin_zmq/private/include/topic_publication.h
deleted file mode 100644
index 3457263..0000000
--- a/pubsub/pubsub_admin_zmq/private/include/topic_publication.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements.  See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership.  The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-/*
- * topic_publication.h
- *
- *  \date       Sep 24, 2015
- *  \author            <a href="mailto:[email protected]";>Apache Celix 
Project Team</a>
- *  \copyright Apache License, Version 2.0
- */
-
-#ifndef TOPIC_PUBLICATION_H_
-#define TOPIC_PUBLICATION_H_
-
-#include "publisher.h"
-#include "pubsub_endpoint.h"
-#include "pubsub_common.h"
-
-#include "pubsub_serializer.h"
-
-typedef struct topic_publication *topic_publication_pt;
-
-celix_status_t pubsub_topicPublicationCreate(bundle_context_pt 
bundle_context,pubsub_endpoint_pt pubEP, pubsub_serializer_service_t 
*best_serializer, char* bindIP, unsigned int basePort, unsigned int maxPort, 
topic_publication_pt *out);
-celix_status_t pubsub_topicPublicationDestroy(topic_publication_pt pub);
-
-celix_status_t pubsub_topicPublicationAddPublisherEP(topic_publication_pt 
pub,pubsub_endpoint_pt ep);
-celix_status_t pubsub_topicPublicationRemovePublisherEP(topic_publication_pt 
pub,pubsub_endpoint_pt ep);
-
-celix_status_t pubsub_topicPublicationStart(bundle_context_pt 
bundle_context,topic_publication_pt pub,service_factory_pt* svcFactory);
-celix_status_t pubsub_topicPublicationStop(topic_publication_pt pub);
-
-array_list_pt pubsub_topicPublicationGetPublisherList(topic_publication_pt 
pub);
-
-#endif /* TOPIC_PUBLICATION_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_zmq/private/include/topic_subscription.h
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_zmq/private/include/topic_subscription.h 
b/pubsub/pubsub_admin_zmq/private/include/topic_subscription.h
deleted file mode 100644
index 7267103..0000000
--- a/pubsub/pubsub_admin_zmq/private/include/topic_subscription.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements.  See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership.  The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-/*
- * topic_subscription.h
- *
- *  \date       Sep 22, 2015
- *  \author            <a href="mailto:[email protected]";>Apache Celix 
Project Team</a>
- *  \copyright Apache License, Version 2.0
- */
-
-#ifndef TOPIC_SUBSCRIPTION_H_
-#define TOPIC_SUBSCRIPTION_H_
-
-#include "celix_threads.h"
-#include "array_list.h"
-#include "celixbool.h"
-#include "service_tracker.h"
-
-#include "pubsub_endpoint.h"
-#include "pubsub_common.h"
-#include "pubsub_serializer.h"
-
-typedef struct topic_subscription* topic_subscription_pt;
-
-celix_status_t pubsub_topicSubscriptionCreate(bundle_context_pt 
bundle_context,char* scope, char* topic, pubsub_serializer_service_t 
*best_serializer, topic_subscription_pt* out);
-celix_status_t pubsub_topicSubscriptionDestroy(topic_subscription_pt ts);
-celix_status_t pubsub_topicSubscriptionStart(topic_subscription_pt ts);
-celix_status_t pubsub_topicSubscriptionStop(topic_subscription_pt ts);
-
-celix_status_t 
pubsub_topicSubscriptionAddConnectPublisherToPendingList(topic_subscription_pt 
ts, char* pubURL);
-celix_status_t 
pubsub_topicSubscriptionAddDisconnectPublisherToPendingList(topic_subscription_pt
 ts, char* pubURL);
-
-celix_status_t pubsub_topicSubscriptionConnectPublisher(topic_subscription_pt 
ts, char* pubURL);
-celix_status_t 
pubsub_topicSubscriptionDisconnectPublisher(topic_subscription_pt ts, char* 
pubURL);
-
-celix_status_t pubsub_topicSubscriptionAddSubscriber(topic_subscription_pt ts, 
pubsub_endpoint_pt subEP);
-celix_status_t pubsub_topicSubscriptionRemoveSubscriber(topic_subscription_pt 
ts, pubsub_endpoint_pt subEP);
-
-array_list_pt pubsub_topicSubscriptionGetSubscribersList(topic_subscription_pt 
sub);
-celix_status_t pubsub_topicIncreaseNrSubscribers(topic_subscription_pt 
subscription);
-celix_status_t pubsub_topicDecreaseNrSubscribers(topic_subscription_pt 
subscription);
-unsigned int pubsub_topicGetNrSubscribers(topic_subscription_pt subscription);
-
-#endif /*TOPIC_SUBSCRIPTION_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/81804e00/pubsub/pubsub_admin_zmq/private/include/zmq_crypto.h
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_zmq/private/include/zmq_crypto.h 
b/pubsub/pubsub_admin_zmq/private/include/zmq_crypto.h
deleted file mode 100644
index f1a990f..0000000
--- a/pubsub/pubsub_admin_zmq/private/include/zmq_crypto.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements.  See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership.  The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-/*
- * zmq_crypto.h
- *
- *  \date       Dec 2, 2016
- *  \author            <a href="mailto:[email protected]";>Apache Celix 
Project Team</a>
- *  \copyright Apache License, Version 2.0
- */
-
-#ifndef ZMQ_CRYPTO_H_
-#define ZMQ_CRYPTO_H_
-
-#include <czmq.h>
-
-#define PROPERTY_KEYS_FILE_PATH "keys.file.path"
-#define PROPERTY_KEYS_FILE_NAME "keys.file.name"
-#define DEFAULT_KEYS_FILE_PATH "/etc/"
-#define DEFAULT_KEYS_FILE_NAME "pubsub.keys"
-
-zcert_t* get_zcert_from_encoded_file(char* keysFilePath, char* keysFileName, 
char* file_path);
-int generate_sha256_hash(char* text, unsigned char* digest);
-int decrypt(unsigned char *ciphertext, int ciphertext_len, unsigned char *key, 
unsigned char *iv, unsigned char *plaintext);
-
-#endif

Reply via email to