You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by ej...@apache.org on 2016/07/13 06:09:25 UTC

[1/7] celix git commit: work to remove APR from the event admin

Repository: celix
Updated Branches:
  refs/heads/develop e7fc3a643 -> 3a028e705


work to remove APR from the event admin


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

Branch: refs/heads/develop
Commit: fb9c9ce4463f3af1b6038b01b1ac4835af948875
Parents: 1917091
Author: Erik "Ealanrian" Jansman <er...@jansman.eu>
Authored: Mon Jul 11 10:38:37 2016 +0200
Committer: Erik "Ealanrian" Jansman <er...@jansman.eu>
Committed: Mon Jul 11 10:38:37 2016 +0200

----------------------------------------------------------------------
 CMakeLists.txt                                  |  2 +-
 event_admin/CMakeLists.txt                      | 16 ++--
 event_admin/event_admin/CMakeLists.txt          | 11 +--
 .../private/include/event_admin_impl.h          | 13 +--
 .../private/src/event_admin_activator.c         | 83 ++++++++++----------
 .../event_admin/private/src/event_admin_impl.c  | 31 +++++---
 6 files changed, 76 insertions(+), 80 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/fb9c9ce4/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5b95566..bbbd4b7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -81,7 +81,7 @@ add_subdirectory(shell)
 add_subdirectory(log_writer)
 add_subdirectory(log_service)
 
-#add_subdirectory(event_admin) event_admin is still bases on APR
+add_subdirectory(event_admin)# event_admin is still bases on APR
 add_subdirectory(dependency_manager)
 #add_subdirectory(scr) scr still needs APR
 

http://git-wip-us.apache.org/repos/asf/celix/blob/fb9c9ce4/event_admin/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/event_admin/CMakeLists.txt b/event_admin/CMakeLists.txt
index 68a582f..d4d81c6 100644
--- a/event_admin/CMakeLists.txt
+++ b/event_admin/CMakeLists.txt
@@ -17,16 +17,14 @@
 
 celix_subproject(EVENT_ADMIN "Option to enable building the Event Admin Service bundles" OFF DEPS LAUNCHER LOG_SERVICE SHELL shell_tui)
 if(EVENT_ADMIN)
-	if(NOT ${WITH_APR})
-		message(FATAL_ERROR "EVENT_ADMIN requires APR, enable WITH_APR option.")
-	endif()
+
 	#add_subdirectory(utils)
 	add_subdirectory(event_admin)
-	add_subdirectory(event_handler)
-	add_subdirectory(event_publisher)
+#	add_subdirectory(event_handler)
+#	add_subdirectory(event_publisher)
 	
-	deploy("event_admin" BUNDLES event_admin shell shell_tui log_service log_writer)
-    deploy("event_publisher_example" BUNDLES event_admin event_publisher shell shell_tui log_service log_writer)
-	deploy("event_handler_example" BUNDLES event_admin event_handler shell shell_tui log_service log_writer)
-	deploy("event_admin_example" BUNDLES event_admin event_publisher event_handler shell shell_tui log_service log_writer)
+	#deploy("event_admin_bundle" BUNDLES event_admin shell shell_tui log_service log_writer)
+  #  deploy("event_publisher_example" BUNDLES event_admin event_publisher shell shell_tui log_service log_writer)
+#	deploy("event_handler_example" BUNDLES event_admin event_handler shell shell_tui log_service log_writer)
+#	deploy("event_admin_example" BUNDLES event_admin event_publisher event_handler shell shell_tui log_service log_writer)
 endif(EVENT_ADMIN)

http://git-wip-us.apache.org/repos/asf/celix/blob/fb9c9ce4/event_admin/event_admin/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/CMakeLists.txt b/event_admin/event_admin/CMakeLists.txt
index b2e8013..4fe7ccd 100644
--- a/event_admin/event_admin/CMakeLists.txt
+++ b/event_admin/event_admin/CMakeLists.txt
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-find_package(APR REQUIRED)
+
 
 include_directories(public/include)
 include_directories(private/include)
@@ -34,11 +34,6 @@ add_bundle(event_admin
 		${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c
 )
 
-install_add_bundle(event_admin
-	HEADERS
-	    public/include/event_admin.h
-	    public/include/event_constants.h
-	    public/include/event_handler.h
-)
+install_bundle(event_admin)
 
-target_link_libraries(event_admin celix_framework celix_utils ${APR_LIBRARY} ${APRUTIL_LIBRARY})
+target_link_libraries(event_admin celix_framework celix_utils)

http://git-wip-us.apache.org/repos/asf/celix/blob/fb9c9ce4/event_admin/event_admin/private/include/event_admin_impl.h
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/include/event_admin_impl.h b/event_admin/event_admin/private/include/event_admin_impl.h
index 38a8606..0aded11 100644
--- a/event_admin/event_admin/private/include/event_admin_impl.h
+++ b/event_admin/event_admin/private/include/event_admin_impl.h
@@ -27,8 +27,6 @@
 #ifndef EVENT_ADMIN_IMPL_H_
 #define EVENT_ADMIN_IMPL_H_
 #include <string.h>
-#include <apr.h>
-#include <apr_pools.h>
 #include "celix_errno.h"
 #include "bundle_context.h"
 #include "constants.h"
@@ -45,7 +43,6 @@
 #include "log_helper.h"
 
 struct event_admin {
-        apr_pool_t *pool;
         hash_map_pt channels;
         array_list_pt event_handlers;
         bundle_context_pt context;
@@ -56,7 +53,7 @@ struct channel {
         char *topic;
         hash_map_pt eventHandlers;///array list containing all listeners subscribed to the channel
        // hash_map_pt channels;
-        apr_thread_mutex_t *channelLock;
+       // apr_thread_mutex_t *channelLock;
 
 };
 /**
@@ -65,7 +62,11 @@ struct channel {
  * @param bundle_context_pt context. Pointer to the bundle context.
  * @param event_admin_pt *event_admin. The event admin result.
  */
-celix_status_t eventAdmin_create(apr_pool_t *pool, bundle_context_pt context, event_admin_pt *event_admin);
+celix_status_t eventAdmin_create( bundle_context_pt context, event_admin_pt *event_admin);
+
+
+celix_status_t eventAdmin_destroy(event_admin_pt *event_admin);
+
 /**
  * @desc Post event. sends the event to the handlers in async.
  * @param event_admin_pt event_admin. the event admin instance
@@ -108,7 +109,7 @@ celix_status_t eventAdmin_findHandlersByTopic(event_admin_pt event_admin, char *
  * @desc char *topic the topic
  * @desc channel_t *channel. the top level channel.
  */
-celix_status_t eventAdmin_createEventChannelsByEventHandler(apr_pool_t *pool,event_handler_service_pt event_handler_service, char *topic, channel_t *channel);
+celix_status_t eventAdmin_createEventChannelsByEventHandler(event_handler_service_pt event_handler_service, char *topic, channel_t *channel);
 /**
  * @desc mutex functions for the channels
  * @param event_admin_pt event_admin. the event admin instance.

http://git-wip-us.apache.org/repos/asf/celix/blob/fb9c9ce4/event_admin/event_admin/private/src/event_admin_activator.c
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/src/event_admin_activator.c b/event_admin/event_admin/private/src/event_admin_activator.c
index abe7fb0..15fb014 100644
--- a/event_admin/event_admin/private/src/event_admin_activator.c
+++ b/event_admin/event_admin/private/src/event_admin_activator.c
@@ -31,7 +31,7 @@
 #include "log_service.h"
 
 struct activator {
-	apr_pool_t *pool;
+
 	event_admin_service_pt event_admin_service;
 	event_admin_pt event_admin;
 	service_registration_pt registration;
@@ -42,50 +42,47 @@ struct activator {
 
 celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) {
 	celix_status_t status = CELIX_SUCCESS;
-	apr_pool_t *pool = NULL;
-	apr_pool_t *parentPool;
+
 	struct activator *activator;
-	status = bundleContext_getMemoryPool(context, &parentPool);
-	if( status == CELIX_SUCCESS ) {
-		if(apr_pool_create(&pool,parentPool) != APR_SUCCESS) {
-			status = CELIX_BUNDLE_EXCEPTION;
-		}else {
-			activator = apr_palloc(pool,sizeof(*activator));
-			activator->pool = pool;
-			activator->registration = NULL;
-			logHelper_create(context, &activator->loghelper);
-
-			*userData = activator;
-			event_admin_pt event_admin = NULL;
-			event_admin_service_pt event_admin_service = NULL;
-			status = eventAdmin_create(activator->pool,context, &event_admin);
-			if(status == CELIX_SUCCESS){
-				activator->event_admin = event_admin;
-				event_admin_service = apr_palloc(activator->pool, sizeof(event_admin_service));
-				if(!event_admin_service){
-					status = CELIX_ENOMEM;
-				} else {
-					event_admin->context = context;
-					event_admin->loghelper = &activator->loghelper;
-					event_admin_service->eventAdmin = event_admin;
-					event_admin_service->postEvent = eventAdmin_postEvent;
-					event_admin_service->sendEvent = eventAdmin_sendEvent;
-					event_admin_service->createEvent = eventAdmin_createEvent;
-					event_admin_service->containsProperty = eventAdmin_containsProperty;
-					event_admin_service->event_equals = eventAdmin_event_equals;
-					event_admin_service->getProperty = eventAdmin_getProperty;
-					event_admin_service->getPropertyNames = eventAdmin_getPropertyNames;
-					event_admin_service->getTopic = eventAdmin_getTopic;
-					event_admin_service->hashCode = eventAdmin_hashCode;
-					event_admin_service->matches = eventAdmin_matches;
-					event_admin_service->toString = eventAdmin_toString;
-
-				}
+	activator = calloc(1, sizeof(*activator));
+
+	if(!activator) {
+		status = CELIX_BUNDLE_EXCEPTION;
+	}else {
+		activator->registration = NULL;
+		logHelper_create(context, &activator->loghelper);
+
+		*userData = activator;
+		event_admin_pt event_admin = NULL;
+		event_admin_service_pt event_admin_service = NULL;
+		status = eventAdmin_create(context, &event_admin);
+		if(status == CELIX_SUCCESS){
+			activator->event_admin = event_admin;
+			event_admin_service = calloc(1, sizeof(event_admin_service));
+			if(!event_admin_service){
+				status = CELIX_ENOMEM;
+			} else {
+				event_admin->context = context;
+				event_admin->loghelper = &activator->loghelper;
+				event_admin_service->eventAdmin = event_admin;
+				event_admin_service->postEvent = eventAdmin_postEvent;
+				event_admin_service->sendEvent = eventAdmin_sendEvent;
+				event_admin_service->createEvent = eventAdmin_createEvent;
+				event_admin_service->containsProperty = eventAdmin_containsProperty;
+				event_admin_service->event_equals = eventAdmin_event_equals;
+				event_admin_service->getProperty = eventAdmin_getProperty;
+				event_admin_service->getPropertyNames = eventAdmin_getPropertyNames;
+				event_admin_service->getTopic = eventAdmin_getTopic;
+				event_admin_service->hashCode = eventAdmin_hashCode;
+				event_admin_service->matches = eventAdmin_matches;
+				event_admin_service->toString = eventAdmin_toString;
+
 			}
-			activator->event_admin_service = event_admin_service;
 		}
+		activator->event_admin_service = event_admin_service;
 	}
 
+
 	return status;
 }
 
@@ -93,8 +90,7 @@ celix_status_t bundleActivator_start(void * userData, bundle_context_pt context)
 	celix_status_t status = CELIX_SUCCESS;
 	struct activator *activator = userData;
 	event_admin_service_pt event_admin_service = NULL;
-	apr_pool_t *pool;
-	status = bundleContext_getMemoryPool(context, &pool);
+
 	if(status == CELIX_SUCCESS) {
 		struct activator * data = (struct activator *) userData;
 		service_tracker_customizer_pt cust = NULL;
@@ -131,7 +127,8 @@ celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context)
 celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) {
 	celix_status_t status = CELIX_SUCCESS;
 	struct activator * data =  userData;
-
+	eventAdmin_destroy(&data->event_admin);
+	free(data->event_admin_service);
 	status = logHelper_destroy(&data->loghelper);
 
 	return status;

http://git-wip-us.apache.org/repos/asf/celix/blob/fb9c9ce4/event_admin/event_admin/private/src/event_admin_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/src/event_admin_impl.c b/event_admin/event_admin/private/src/event_admin_impl.c
index 83df555..65419d0 100644
--- a/event_admin/event_admin/private/src/event_admin_impl.c
+++ b/event_admin/event_admin/private/src/event_admin_impl.c
@@ -33,13 +33,12 @@
 #include "celix_log.h"
 
 
-celix_status_t eventAdmin_create(apr_pool_t *pool, bundle_context_pt context, event_admin_pt *event_admin){
+celix_status_t eventAdmin_create(bundle_context_pt context, event_admin_pt *event_admin){
 	celix_status_t status = CELIX_SUCCESS;
-	*event_admin = apr_palloc(pool, sizeof(**event_admin));
+	*event_admin = calloc(1,sizeof(**event_admin));
 	if (!*event_admin) {
         status = CELIX_ENOMEM;
     } else {
-        (*event_admin)->pool = pool;
         (*event_admin)->channels = hashMap_create(utils_stringHash, utils_stringHash, utils_stringEquals, utils_stringEquals);
         (*event_admin)->context =context;
         status = arrayList_create(&(*event_admin)->event_handlers);
@@ -47,6 +46,13 @@ celix_status_t eventAdmin_create(apr_pool_t *pool, bundle_context_pt context, ev
 	return status;
 }
 
+celix_status_t eventAdmin_destroy(event_admin_pt *event_admin)
+{
+	celix_status_t status = CELIX_SUCCESS;
+	free(event_admin);
+	return status;
+}
+
 celix_status_t eventAdmin_getEventHandlersByChannel(bundle_context_pt context, const char * serviceName, array_list_pt *eventHandlers) {
 	celix_status_t status = bundleContext_getServiceReferences(context, serviceName, NULL, eventHandlers);
 	return status;
@@ -120,18 +126,17 @@ celix_status_t eventAdmin_createEventChannels(event_admin_pt *event_admin, char
 		//create channel
 		logHelper_log(*(*event_admin)->loghelper, OSGI_LOGSERVICE_INFO, "Creating channel: %s", topic);
 
-        apr_pool_t *subPool = NULL;
-        apr_pool_create(&subPool, (*event_admin)->pool);
 
-		channel = apr_palloc(subPool, sizeof(*channel));
+
+		channel = calloc(1, sizeof(*channel));
 		if (!channel) {
             status = CELIX_ENOMEM;
         } else {
             char *channel_name = strdup(topic);
 			channel->topic = channel_name;
 			channel->eventHandlers = hashMap_create(NULL,NULL,NULL,NULL);
-			channel->channelLock = NULL;
-            apr_thread_mutex_create(&channel->channelLock, APR_THREAD_MUTEX_NESTED, subPool);
+			//channel->channelLock = NULL;
+          //  apr_thread_mutex_create(&channel->channelLock, APR_THREAD_MUTEX_NESTED, subPool);
 			hashMap_put((*event_admin)->channels, channel_name, channel);
 		}
     }
@@ -179,15 +184,15 @@ celix_status_t eventAdmin_createEventChannels(event_admin_pt *event_admin, char
 
 celix_status_t eventAdmin_lockHandlersList(event_admin_pt event_admin, char *topic) {
 	celix_status_t status = CELIX_SUCCESS;
-    channel_t channel = hashMap_get(event_admin->channels, topic);
+    /*channel_t channel = hashMap_get(event_admin->channels, topic);
 	if (channel != NULL) {
         // TODO verify this will never deadlock...
-        apr_status_t status;
+       // apr_status_t status;
         do {
-            status = apr_thread_mutex_trylock(channel->channelLock);
+         //   status = apr_thread_mutex_trylock(channel->channelLock);
         } while (status != 0 && !APR_STATUS_IS_EBUSY(status));
         logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "LOCK: %s!", topic);
-    }
+    }*/
 	return status;
 }
 
@@ -196,7 +201,7 @@ celix_status_t eventAdmin_releaseHandersList(event_admin_pt event_admin, char *t
     channel_t channel = hashMap_get(event_admin->channels, topic);
 	if (channel != NULL) {
         // TODO check the result value...
-        apr_thread_mutex_unlock(channel->channelLock);
+       // apr_thread_mutex_unlock(channel->channelLock);
         logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "UNLOCK: %s!", topic);
     }
 	return status;


[2/7] celix git commit: Merge branch 'develop' of http://git.apache.org/celix into develop

Posted by ej...@apache.org.
Merge branch 'develop' of http://git.apache.org/celix into develop


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

Branch: refs/heads/develop
Commit: 89ff35c3a4eed0b44fe716dfdbb08f88eac19b94
Parents: fb9c9ce e628ee4
Author: Ealanrian <er...@jansman.eu>
Authored: Mon Jul 11 10:56:40 2016 +0200
Committer: Ealanrian <er...@jansman.eu>
Committed: Mon Jul 11 10:56:40 2016 +0200

----------------------------------------------------------------------
 NOTICE                                          |  2 +-
 dependency_manager/private/include/dm_event.h   | 12 ++++-----
 .../include/dm_service_dependency_impl.h        |  4 +--
 .../private/src/dm_component_impl.c             | 20 +++++++-------
 dependency_manager/private/src/dm_event.c       | 10 +++----
 .../private/src/dm_service_dependency.c         | 10 +++----
 .../public/include/dm_component.h               |  6 ++---
 .../public/include/dm_service_dependency.h      | 26 +++++++++---------
 .../phase2a/private/include/phase2a_cmp.h       |  2 +-
 .../phase2a/private/src/phase2a_activator.c     |  2 +-
 .../phase2a/private/src/phase2a_cmp.c           |  4 +--
 .../phase2b/private/include/phase2b_cmp.h       |  2 +-
 .../phase2b/private/src/phase2b_activator.c     |  2 +-
 .../phase2b/private/src/phase2b_cmp.c           |  4 +--
 .../phase3/private/include/phase3_cmp.h         |  4 +--
 .../phase3/private/src/phase3_activator.c       |  2 +-
 .../dm_example/phase3/private/src/phase3_cmp.c  | 10 +++----
 .../private/src/listener_example.c              |  4 +--
 .../tracker_depman/private/include/tracker.h    | 18 ++++++-------
 .../private/src/dependency_activator.c          |  2 +-
 .../tracker_depman/private/src/tracker.c        | 26 +++++++++---------
 framework/private/include/framework_private.h   |  4 +--
 .../private/include/service_reference_private.h |  4 +--
 .../include/service_registration_private.h      | 12 ++++-----
 framework/private/mock/bundle_context_mock.c    |  4 +--
 framework/private/mock/framework_mock.c         |  6 ++---
 framework/private/mock/service_reference_mock.c |  4 +--
 .../private/mock/service_registration_mock.c    | 12 ++++-----
 framework/private/mock/service_registry_mock.c  |  6 ++---
 framework/private/mock/version_range_mock.c     |  2 +-
 framework/private/src/bundle_context.c          |  9 ++++---
 framework/private/src/framework.c               | 10 +++----
 framework/private/src/service_reference.c       |  7 +++--
 framework/private/src/service_registration.c    | 28 ++++++++++++--------
 framework/private/src/service_registry.c        | 28 ++++++++++++--------
 .../private/test/service_registration_test.cpp  |  6 ++---
 .../private/test/service_registry_test.cpp      |  2 +-
 framework/public/include/bundle_context.h       |  2 +-
 framework/public/include/service_registry.h     |  4 +--
 .../private/src/endpoint_discovery_poller.c     |  4 +--
 .../topology_manager/private/src/scope.c        |  4 +--
 utils/private/src/array_list.c                  |  4 +--
 utils/private/src/version_range.c               |  2 +-
 utils/public/include/array_list.h               |  2 +-
 utils/public/include/version_range.h            |  2 +-
 45 files changed, 179 insertions(+), 161 deletions(-)
----------------------------------------------------------------------



[4/7] celix git commit: Work on event handler and publisher demo alsmost working again

Posted by ej...@apache.org.
Work on event handler and publisher demo alsmost working again


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

Branch: refs/heads/develop
Commit: 514e274ca004c404427aded8a578608d764b51df
Parents: c72fbba
Author: Erik Jansman <ej...@apache.org>
Authored: Tue Jul 12 15:06:17 2016 +0200
Committer: Ealanrian <er...@jansman.eu>
Committed: Tue Jul 12 15:06:17 2016 +0200

----------------------------------------------------------------------
 event_admin/CMakeLists.txt                      |  12 +-
 .../private/src/event_admin_activator.c         |   6 +-
 .../event_admin/private/src/event_admin_impl.c  |  14 +-
 event_admin/event_handler/CMakeLists.txt        |   5 +-
 .../private/include/event_handler_impl.h        |   2 +-
 .../private/src/event_handler_activator.c       |  77 +++---
 .../private/src/event_handler_impl.c            |  15 +-
 event_admin/event_publisher/CMakeLists.txt      |  14 +-
 .../private/include/event_publisher_impl.h      |  10 +-
 .../private/src/event_publisher_activator.c     |  37 +--
 .../private/src/event_publisher_impl.c          |  56 ++--
 event_admin/utils/private/src/event_impl.c      | 266 +++++++++----------
 12 files changed, 266 insertions(+), 248 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/event_admin/CMakeLists.txt b/event_admin/CMakeLists.txt
index 3414c90..e0d830c 100644
--- a/event_admin/CMakeLists.txt
+++ b/event_admin/CMakeLists.txt
@@ -20,8 +20,8 @@ if(EVENT_ADMIN)
 
 	#add_subdirectory(utils)
 	add_subdirectory(event_admin)
-#	add_subdirectory(event_handler)
-#	add_subdirectory(event_publisher)
+	add_subdirectory(event_handler)
+	add_subdirectory(event_publisher)
 
 	#deploy("event_admin_bundle" BUNDLES event_admin shell shell_tui log_service log_writer)
   #  deploy("event_publisher_example" BUNDLES event_admin event_publisher shell shell_tui log_service log_writer)
@@ -32,4 +32,12 @@ if(EVENT_ADMIN)
 			GROUP "event_admin/event_admin"
 			BUNDLES event_admin shell shell_tui log_service log_writer
 			)
+	add_deploy(event_handler_consumer
+			NAME "event_handler_consumer"
+			GROUP "event_handler"
+			BUNDLES event_handler event_admin shell shell_tui log_service log_writer)
+	add_deploy(event_publisher_consumer
+			NAME "event_publisher_consumer"
+			GROUP "event_publisher"
+			BUNDLES event_publisher event_handler event_admin shell shell_tui log_service log_writer)
 endif(EVENT_ADMIN)

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_admin/private/src/event_admin_activator.c
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/src/event_admin_activator.c b/event_admin/event_admin/private/src/event_admin_activator.c
index bf89236..a5f8cb2 100644
--- a/event_admin/event_admin/private/src/event_admin_activator.c
+++ b/event_admin/event_admin/private/src/event_admin_activator.c
@@ -119,16 +119,16 @@ celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context)
 	serviceTracker_close(data->tracker);
 	status = logHelper_stop(data->loghelper);
     logHelper_destroy(&data->loghelper);
-    free(data->event_admin_service);
+
 	return status;
 }
 
 
 celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) {
 	celix_status_t status = CELIX_SUCCESS;
-    struct activator *activator = userData;
+    //stop  struct activator *activator = userData;
 
-    free(activator);
+    // free(activator);
 
 	return status;
 }

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_admin/private/src/event_admin_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/src/event_admin_impl.c b/event_admin/event_admin/private/src/event_admin_impl.c
index d074323..a7eeb49 100644
--- a/event_admin/event_admin/private/src/event_admin_impl.c
+++ b/event_admin/event_admin/private/src/event_admin_impl.c
@@ -127,7 +127,7 @@ celix_status_t eventAdmin_createEventChannels(event_admin_pt *event_admin, const
     channel_t channel = hashMap_get((*event_admin)->channels, topic);
 	if (channel == NULL) {
 		//create channel
-		logHelper_log(*(*event_admin)->loghelper, OSGI_LOGSERVICE_INFO, "Creating channel: %s", topic);
+		logHelper_log(*(*event_admin)->loghelper, OSGI_LOGSERVICE_ERROR, "Creating channel: %s", topic);
 
 
 
@@ -171,7 +171,7 @@ celix_status_t eventAdmin_releaseHandersList(event_admin_pt event_admin, const c
 	if (channel != NULL) {
         // TODO check the result value...
        // apr_thread_mutex_unlock(channel->channelLock);
-        logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "UNLOCK: %s!", topic);
+		logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "UNLOCK: %s!", topic);
     }
 	return status;
 }
@@ -180,6 +180,8 @@ celix_status_t eventAdmin_addingService(void * handle, service_reference_pt ref,
 	celix_status_t status = CELIX_SUCCESS;
 	event_admin_pt  event_admin = handle;
 	status = bundleContext_getService(event_admin->context, ref, service);
+	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "test");
+	printf("eventadmin adding service \n");
   	return status;
 }
 
@@ -190,19 +192,21 @@ celix_status_t eventAdmin_addedService(void * handle, service_reference_pt ref,
 	event_handler_service = (event_handler_service_pt) service;
 	const char *topic = NULL;
 	serviceReference_getProperty(ref, (char*)EVENT_TOPIC, &topic);
-	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "Original TOPIC: %s", topic);
+	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "Original TOPIC: %s", topic);
+	printf("original topic: %s\n", topic);
 	eventAdmin_createEventChannels(&event_admin,topic,event_handler_service);
 	return status;
 }
 
 celix_status_t eventAdmin_modifiedService(void * handle, service_reference_pt ref, void * service) {
 	event_admin_pt event_admin = (event_admin_pt) handle;
-	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "Event admin Modified");
+	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "Event admin Modified");
 	return CELIX_SUCCESS;
 }
 
 celix_status_t eventAdmin_removedService(void * handle, service_reference_pt ref, void * service) {
 	event_admin_pt event_admin = (event_admin_pt) handle;
-	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "Event admin Removed %p", service);
+	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "Event admin Removed %p", service);
+	printf("Event admin Removed %p", service);
 	return CELIX_SUCCESS;
 }

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_handler/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/event_admin/event_handler/CMakeLists.txt b/event_admin/event_handler/CMakeLists.txt
index 6c269aa..c786a78 100644
--- a/event_admin/event_handler/CMakeLists.txt
+++ b/event_admin/event_handler/CMakeLists.txt
@@ -15,7 +15,6 @@
 # specific language governing permissions and limitations
 # under the License.
 
-find_package(APR REQUIRED)
 
 include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
 include_directories(private/include)
@@ -31,6 +30,6 @@ add_bundle(event_handler
 		${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c
 )
 
-install_add_bundle(event_handler)
+install_bundle(event_handler)
 
-target_link_libraries(event_handler celix_framework celix_utils ${APR_LIBRARY} ${APRUTIL_LIBRARY})
+target_link_libraries(event_handler celix_framework celix_utils)

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_handler/private/include/event_handler_impl.h
----------------------------------------------------------------------
diff --git a/event_admin/event_handler/private/include/event_handler_impl.h b/event_admin/event_handler/private/include/event_handler_impl.h
index a796733..44fc671 100644
--- a/event_admin/event_handler/private/include/event_handler_impl.h
+++ b/event_admin/event_handler/private/include/event_handler_impl.h
@@ -49,7 +49,7 @@ celix_status_t eventHandlerHandleEvent(event_handler_pt *instance, event_pt even
  * @param apr_pool_t *pool the apr pool to contain the handler
  * @param event_handler_pt *event_handler. the event handler to be made.
  */
-celix_status_t eventHandlerCreate(apr_pool_t *pool, bundle_context_pt context,  event_handler_pt *event_handler);
+celix_status_t eventHandlerCreate(bundle_context_pt context, event_handler_pt *event_handler);
 celix_status_t  eventHandlerRemovedService(void * handle, service_reference_pt ref, void * service) ;
 celix_status_t  eventHandlerModifiedService(void * handle, service_reference_pt ref, void * service) ;
 celix_status_t  eventHandlerAddedService(void * handle, service_reference_pt ref, void * service) ;

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_handler/private/src/event_handler_activator.c
----------------------------------------------------------------------
diff --git a/event_admin/event_handler/private/src/event_handler_activator.c b/event_admin/event_handler/private/src/event_handler_activator.c
index cadde59..d39cfd9 100644
--- a/event_admin/event_handler/private/src/event_handler_activator.c
+++ b/event_admin/event_handler/private/src/event_handler_activator.c
@@ -31,7 +31,6 @@
 
 static const char * const EVENT_HANDLER_NAME = "demo";
 struct activator {
-	apr_pool_t *pool;
 	event_handler_service_pt event_handler_service;
 	service_registration_pt registration;
 	service_tracker_pt eventAdminTracker;
@@ -39,38 +38,29 @@ struct activator {
 
 celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) {
 	celix_status_t status = CELIX_SUCCESS;
-	apr_pool_t *pool = NULL;
-	apr_pool_t *parentPool;
 	struct activator *activator;
 
-	status = bundleContext_getMemoryPool(context, &parentPool);
-	if (status == CELIX_SUCCESS) {
-		if (apr_pool_create(&pool,parentPool) != APR_SUCCESS) {
-			status = CELIX_BUNDLE_EXCEPTION;
-		} else {
-			activator = apr_palloc(pool, sizeof(*activator));
-			activator->pool = pool;
-			activator->registration = NULL;
-			*userData = activator;
-
-			event_handler_pt event_handler = NULL;
-			event_handler_service_pt event_handler_service = NULL;
-
-			status = eventHandlerCreate(activator->pool, context, &event_handler);
-			if (status == CELIX_SUCCESS) {
-				event_handler_service = apr_palloc(activator->pool, sizeof(event_handler_service));
-				if (!event_handler_service) {
-					status = CELIX_ENOMEM;
-				} else {
-					event_handler_service->event_handler = event_handler;
-					event_handler_service->handle_event = eventHandlerHandleEvent;
-				}
-			}
-			activator->event_handler_service = event_handler_service;
+    activator = calloc(1, sizeof(*activator));
+    activator->registration = NULL;
+    *userData = activator;
+
+    event_handler_pt event_handler = NULL;
+    event_handler_service_pt event_handler_service = NULL;
+
+    status = eventHandlerCreate(context, &event_handler);
+    if (status == CELIX_SUCCESS) {
+        event_handler_service = calloc(1, sizeof(event_handler_service));
+        if (!event_handler_service) {
+            status = CELIX_ENOMEM;
+        } else {
+            event_handler_service->event_handler = event_handler;
+            event_handler_service->handle_event = eventHandlerHandleEvent;
 		}
 	}
+    activator->event_handler_service = event_handler_service;
 
-	return status;
+
+    return status;
 }
 
 celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) {
@@ -79,26 +69,31 @@ celix_status_t bundleActivator_start(void * userData, bundle_context_pt context)
 
 	properties_pt properties = NULL;
 	properties = properties_create();
-	properties_set(properties,(char*)EVENT_HANDLER_SERVICE,(char *)EVENT_HANDLER_NAME);
-	properties_set(properties,(char*)EVENT_TOPIC, (char*) "log/error/eventpublishers/event");
+    properties_set(properties, (char *) EVENT_HANDLER_SERVICE, (const char *) EVENT_HANDLER_NAME);
+    properties_set(properties, (char *) EVENT_TOPIC, (const char *) "log/error/eventpublishers/event");
 
 	event_handler_service_pt event_handler_service = activator->event_handler_service;
-	bundleContext_registerService(context, (char *) EVENT_HANDLER_SERVICE, event_handler_service, properties, &activator->registration);
-	apr_pool_t *pool;
-	status = bundleContext_getMemoryPool(context, &pool);
-	if (status == CELIX_SUCCESS) {
-		service_tracker_customizer_pt customizer = NULL;
-		service_tracker_pt tracker = NULL;
-		serviceTrackerCustomizer_create(activator->event_handler_service->event_handler, eventHandlerAddingService, eventHandlerAddedService, eventHandlerModifiedService, eventHandlerRemovedService, &customizer);
-		serviceTracker_create(context, (char *) EVENT_ADMIN_NAME, customizer, &tracker);
-		activator->eventAdminTracker = tracker;
-		serviceTracker_open(tracker);
-	}
+    bundleContext_registerService(context, (const char *) EVENT_HANDLER_SERVICE, event_handler_service, properties,
+                                  &activator->registration);
+
+    /*if (status == CELIX_SUCCESS) {
+        service_tracker_customizer_pt customizer = NULL;
+        service_tracker_pt tracker = NULL;
+        serviceTrackerCustomizer_create(activator->event_handler_service->event_handler, eventHandlerAddingService, eventHandlerAddedService, eventHandlerModifiedService, eventHandlerRemovedService, &customizer);
+        serviceTracker_create(context, (const char *) EVENT_ADMIN_NAME, customizer, &tracker);
+        activator->eventAdminTracker = tracker;
+        serviceTracker_open(tracker);
+    }*/
 	return status;
 }
 
 celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) {
 	celix_status_t status = CELIX_SUCCESS;
+    struct activator *data = userData;
+    serviceRegistration_unregister(data->registration);
+    //serviceTracker_close(data->tracker);
+    //status = logHelper_stop(data->loghelper);
+    //logHelper_destroy(&data->loghelper);
 	return status;
 }
 

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_handler/private/src/event_handler_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/event_handler/private/src/event_handler_impl.c b/event_admin/event_handler/private/src/event_handler_impl.c
index 24505e9..13b3c19 100644
--- a/event_admin/event_handler/private/src/event_handler_impl.c
+++ b/event_admin/event_handler/private/src/event_handler_impl.c
@@ -23,25 +23,24 @@
  *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
  *  \copyright	Apache License, Version 2.0
  */
+#include <stdlib.h>
 #include "event_handler.h"
 #include "log_helper.h"
 #include "log_service.h"
 
 struct event_handler {
-	apr_pool_t *pool;
 	event_admin_service_pt event_admin_service;
 	bundle_context_pt context;
 	log_helper_pt loghelper;
 
 };
 
-celix_status_t eventHandlerCreate(apr_pool_t *pool, bundle_context_pt context, event_handler_pt *event_handler){
+celix_status_t eventHandlerCreate(bundle_context_pt context, event_handler_pt *event_handler) {
 	celix_status_t status = CELIX_SUCCESS;
-	*event_handler = apr_palloc(pool, sizeof(**event_handler));
+    *event_handler = calloc(1, sizeof(**event_handler));
 	if (!*event_handler) {
         status = CELIX_ENOMEM;
 	} else {
-        (*event_handler)->pool = pool;
         (*event_handler)->event_admin_service = NULL;
         (*event_handler)->context = context;
 
@@ -55,7 +54,7 @@ celix_status_t eventHandlerCreate(apr_pool_t *pool, bundle_context_pt context, e
 celix_status_t eventHandlerHandleEvent(event_handler_pt *event_handler, event_pt event) {
 	celix_status_t status = CELIX_SUCCESS;
 	if (event != NULL) {
-		char *topic = NULL;
+        const char *topic = NULL;
 		status = (*event_handler)->event_admin_service->getTopic(&event, &topic);
 		logHelper_log((*event_handler)->loghelper, OSGI_LOGSERVICE_INFO, "[SUB] topic of event: %s.", topic);
 
@@ -65,8 +64,8 @@ celix_status_t eventHandlerHandleEvent(event_handler_pt *event_handler, event_pt
 
 		array_list_iterator_pt propertyIter = arrayListIterator_create(propertyNames);
 		while (arrayListIterator_hasNext(propertyIter)) {
-			char *key = arrayListIterator_next(propertyIter);
-			char *value = NULL;
+            char *key = arrayListIterator_next(propertyIter);
+            const char *value = NULL;
 			(*event_handler)->event_admin_service->getProperty(&event,key,&value);
 
 			logHelper_log((*event_handler)->loghelper, OSGI_LOGSERVICE_INFO, "[SUB] Key: %s value: %s.", key, value);
@@ -98,7 +97,7 @@ celix_status_t eventHandlerModifiedService(void * handle, service_reference_pt r
 
 celix_status_t eventHandlerRemovedService(void * handle, service_reference_pt ref, void * service) {
 	event_handler_pt data = (event_handler_pt) handle;
-logHelper_log(data->loghelper, OSGI_LOGSERVICE_DEBUG, "[SUB] Event admin removed.");
+    logHelper_log(data->loghelper, OSGI_LOGSERVICE_DEBUG, "[SUB] Event admin removed.");
 	data->event_admin_service = NULL;
 	return CELIX_SUCCESS;
 }

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_publisher/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/event_admin/event_publisher/CMakeLists.txt b/event_admin/event_publisher/CMakeLists.txt
index a7fd886..1999a9c 100644
--- a/event_admin/event_publisher/CMakeLists.txt
+++ b/event_admin/event_publisher/CMakeLists.txt
@@ -15,20 +15,20 @@
 # specific language governing permissions and limitations
 # under the License.
 
-find_package(APR REQUIRED)
 
 include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
 include_directories(private/include)
 include_directories(${PROJECT_SOURCE_DIR}/event_admin/event_admin/public/include)
 include_directories(${PROJECT_SOURCE_DIR}/log_service/public/include)
 
-add_bundle(event_publisher SOURCES
+add_bundle(event_publisher
     VERSION 0.0.0
-	private/src/event_publisher_activator.c
-	private/src/event_publisher_impl.c
-	${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c	
+		SOURCES
+		private/src/event_publisher_activator.c
+		private/src/event_publisher_impl.c
+		${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c
 )
 
-install_add_bundle(event_publisher)
+install_bundle(event_publisher)
 
-target_link_libraries(event_publisher celix_framework celix_utils ${APR_LIBRARY} ${APRUTIL_LIBRARY})
+target_link_libraries(event_publisher celix_framework celix_utils)

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_publisher/private/include/event_publisher_impl.h
----------------------------------------------------------------------
diff --git a/event_admin/event_publisher/private/include/event_publisher_impl.h b/event_admin/event_publisher/private/include/event_publisher_impl.h
index 31f306d..a2cab83 100644
--- a/event_admin/event_publisher/private/include/event_publisher_impl.h
+++ b/event_admin/event_publisher/private/include/event_publisher_impl.h
@@ -40,17 +40,13 @@
 #include "log_helper.h"
 #include "log_service.h"
 
-#include <apr.h>
-#include <apr_pools.h>
-#include <apr_thread_proc.h>
 
 typedef struct event_publisher *event_publisher_pt;
 struct event_publisher {
-	apr_pool_t *pool;
 	event_admin_service_pt event_admin_service;
 	bool running;
 	bool eventAdminAdded;
-	apr_thread_t *sender;
+	celix_thread_t sender;
 	bundle_context_pt context;
 	log_helper_pt loghelper;
 };
@@ -60,7 +56,7 @@ struct event_publisher {
  * @param bundle_context_pt context the bundle context
  * @param event_publisher_pt *event_publisher. The publisher to be made.
  */
-celix_status_t eventPublisherCreate(apr_pool_t *pool, bundle_context_pt context, event_publisher_pt *event_publisher);
+celix_status_t eventPublisherCreate(bundle_context_pt context, event_publisher_pt *event_publisher);
 /**
  * @desc start the event publisher. Starts the threads and trackers.
  * @param event_publisher_pt *event_publisher the publisher to start
@@ -82,4 +78,6 @@ celix_status_t eventPublisherRemovedService(void * handle, service_reference_pt
  * @param event_publisher_pt *event_publisher. pointer to the publisher.
  */
 celix_status_t eventPublisherStop(event_publisher_pt *event_publisher);
+
+void *produceEvents(void *handle);
 #endif /* EVENT_PUBLISHER_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_publisher/private/src/event_publisher_activator.c
----------------------------------------------------------------------
diff --git a/event_admin/event_publisher/private/src/event_publisher_activator.c b/event_admin/event_publisher/private/src/event_publisher_activator.c
index 70cd1ec..279942f 100644
--- a/event_admin/event_publisher/private/src/event_publisher_activator.c
+++ b/event_admin/event_publisher/private/src/event_publisher_activator.c
@@ -24,13 +24,11 @@
  *  \copyright	Apache License, Version 2.0
  */
 #include <stdlib.h>
-#include <apr_thread_proc.h>
 
 
 #include "event_publisher_impl.h"
 
 struct activator {
-	apr_pool_t *pool;
 	bundle_context_pt context;
 	event_publisher_pt event_publisher;
 	service_tracker_pt tracker;
@@ -38,24 +36,18 @@ struct activator {
 
 celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) {
 	celix_status_t status = CELIX_SUCCESS;
-	apr_pool_t *pool = NULL;
-	apr_pool_t *parentPool;
+
 	struct activator *activator = NULL;
-	status = bundleContext_getMemoryPool(context, &parentPool);
+
+	activator = calloc(1, sizeof(*activator));
+	activator->context = context;
+	*userData = activator;
+
+	event_publisher_pt eventpublisher;
+	status = eventPublisherCreate(context, &eventpublisher);
 	if(status == CELIX_SUCCESS) {
-		if(apr_pool_create(&pool,parentPool) != APR_SUCCESS) {
-			status = CELIX_BUNDLE_EXCEPTION;
-		}else {
-			activator = apr_palloc(pool,sizeof(*activator));
-			activator->pool = pool;
-			activator->context = context;
-			*userData = activator;
-		}
-		event_publisher_pt eventpublisher;
-        status = eventPublisherCreate(activator->pool,context,&eventpublisher);
-        if(status == CELIX_SUCCESS) {
-            activator->event_publisher = eventpublisher;
-        }
+		activator->event_publisher = eventpublisher;
+
 	}
 
 	return status;
@@ -64,10 +56,9 @@ celix_status_t bundleActivator_create(bundle_context_pt context, void **userData
 celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) {
 	celix_status_t status = CELIX_SUCCESS;
 	struct activator * data = (struct activator *) userData;
-	apr_pool_t *pool;
-	status = bundleContext_getMemoryPool(context, &pool);
-	if(status == CELIX_SUCCESS){
-		service_tracker_customizer_pt cust = NULL;
+
+
+	service_tracker_customizer_pt cust = NULL;
 		service_tracker_pt tracker = NULL;
 		data->context = context;
 		serviceTrackerCustomizer_create(data->event_publisher, eventPublisherAddingService, eventPublisherAddedService, eventPublisherModifiedService, eventPublisherRemovedService, &cust);
@@ -75,7 +66,7 @@ celix_status_t bundleActivator_start(void * userData, bundle_context_pt context)
 		data->tracker = tracker;
 
 		serviceTracker_open(tracker);
-	}
+
 	eventPublisherStart(&data->event_publisher);
 	return status;
 }

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/event_publisher/private/src/event_publisher_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/event_publisher/private/src/event_publisher_impl.c b/event_admin/event_publisher/private/src/event_publisher_impl.c
index 0b3fb40..6a8bc00 100644
--- a/event_admin/event_publisher/private/src/event_publisher_impl.c
+++ b/event_admin/event_publisher/private/src/event_publisher_impl.c
@@ -23,46 +23,69 @@
  * \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
  * \copyright	Apache License, Version 2.0
  */
+#include <stdlib.h>
 
+#include <unistd.h>
+#include <sys/time.h>
 #include "event_publisher_impl.h"
 
-static void *APR_THREAD_FUNC eventPublisherSendEventThread(apr_thread_t *thd, void *handle);
+celix_thread_start_t eventPublisherSendEventThread(celix_thread_t *thd, void *handle);
 
-celix_status_t eventPublisherCreate(apr_pool_t *pool, bundle_context_pt context, event_publisher_pt *event_publisher) {
+celix_status_t eventPublisherCreate(bundle_context_pt context, event_publisher_pt *event_publisher) {
     celix_status_t status = CELIX_SUCCESS;
-    *event_publisher = apr_palloc(pool, sizeof(**event_publisher));
+    *event_publisher = calloc(1, sizeof(**event_publisher));
     if (!*event_publisher) {
         status = CELIX_ENOMEM;
     } else {
         (*event_publisher)->event_admin_service = NULL;
-        (*event_publisher)->pool = NULL;
+
         (*event_publisher)->eventAdminAdded = false;
         (*event_publisher)->running = false;
-        (*event_publisher)->pool = pool;
         (*event_publisher)->context = context;
-
+        (*event_publisher)->sender = celix_thread_default;
         logHelper_create(context, &(*event_publisher)->loghelper);
     }
     return status;
 }
 
 celix_status_t eventPublisherStart(event_publisher_pt *event_publisher) {
+    celix_status_t status = CELIX_SUCCESS;
 	(*event_publisher)->running = true;
     logHelper_start((*event_publisher)->loghelper);
-	apr_thread_create(&(*event_publisher)->sender, NULL, eventPublisherSendEventThread, event_publisher, (*event_publisher)->pool);
-	return CELIX_SUCCESS;
+    // celixThread_create((*event_publisher)->sender, NULL, eventPublisherSendEventThread, event_publisher);
+    status = celixThread_create(&(*event_publisher)->sender, NULL, produceEvents, &(*event_publisher));
+    return status;
 }
 
 celix_status_t eventPublisherStop(event_publisher_pt *event_publisher) {
 	(*event_publisher)->running = false;
-	apr_status_t status;
-	apr_thread_join(&status,(*event_publisher)->sender);
+    //void * status;
+    // celixThread_join((*event_publisher)->sender, &status);
 	logHelper_stop((*event_publisher)->loghelper);
 	logHelper_destroy(&(*event_publisher)->loghelper);
 	return CELIX_SUCCESS;
 }
 
-static void *APR_THREAD_FUNC eventPublisherSendEventThread(apr_thread_t *thd, void *handle) {
+void *produceEvents(void *handle) {
+    event_publisher_pt *event_publisher = handle;
+    while ((*event_publisher)->running && (*event_publisher)->eventAdminAdded) {
+        //   sleep(1000000); // 1 sec.
+        event_admin_service_pt *event_admin_service = &(*event_publisher)->event_admin_service;
+        event_admin_pt event_admin = (*event_admin_service)->eventAdmin;
+        if (event_admin_service != NULL) {
+            event_pt event;
+            properties_pt props = properties_create();
+            properties_set(props, "This is a key", "this is a value");
+            (*event_admin_service)->createEvent(event_admin, "log/error/eventpublishers/event", props, &event);
+            (*event_admin_service)->postEvent(event_admin, event);
+            (*event_admin_service)->sendEvent(event_admin, event);
+            printf("send event\n");
+        }
+    }
+    return CELIX_SUCCESS;
+}
+
+/*celix_thread_start_t eventPublisherSendEventThread(celix_thread_t *thd, void *handle) {
     event_publisher_pt *client = (event_publisher_pt *) handle;
 
     while ((*client)->running && (*client)->eventAdminAdded) {
@@ -79,21 +102,22 @@ static void *APR_THREAD_FUNC eventPublisherSendEventThread(apr_thread_t *thd, vo
             (*event_admin_service)->sendEvent(event_admin, event);
         }
     }
-	apr_thread_exit(thd, APR_SUCCESS);
-	return NULL;
-}
+    celixThread_exit( APR_SUCCESS);
+	return NULL;*
+}*/
 
 celix_status_t eventPublisherAddingService(void * handle, service_reference_pt ref, void **service) {
 	celix_status_t status = CELIX_SUCCESS;
 	event_publisher_pt event_publisher = handle;
 	status = bundleContext_getService(event_publisher->context, ref, service);
-	return status;
+
+    return status;
 }
 
 celix_status_t eventPublisherAddedService(void * handle, service_reference_pt ref, void * service) {
     event_publisher_pt data = (event_publisher_pt) handle;
 	logHelper_log(data->loghelper, OSGI_LOGSERVICE_DEBUG, "[PUB] Event admin added.");
-
+    printf(" added event admin");
     data->event_admin_service = (event_admin_service_pt) service;
     data->eventAdminAdded = true;
 	return CELIX_SUCCESS;

http://git-wip-us.apache.org/repos/asf/celix/blob/514e274c/event_admin/utils/private/src/event_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/utils/private/src/event_impl.c b/event_admin/utils/private/src/event_impl.c
index 3a5d07c..bd87358 100644
--- a/event_admin/utils/private/src/event_impl.c
+++ b/event_admin/utils/private/src/event_impl.c
@@ -1,133 +1,133 @@
-/**
- *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.
- */
-/*
- * event_impl.c
- *
- *  \Created on: Aug 22, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- *
- */
-
-
-#include "event.h"
-#include "event_constants.h"
-#include "celix_errno.h"
-#include "stddef.h"
-#include <apr.h>
-#include <apr_pools.h>
-struct event {
-	char *topic;
-	properties_pt properties;
-};
-
-celix_status_t createEvent(char *topic, properties_pt properties, apr_pool_t *pool, event_pt *event){
-	celix_status_t status = CELIX_SUCCESS;
-
-	*event= apr_palloc(pool,sizeof(**event));
-	if(!*event){
-	       status = CELIX_ENOMEM;
-	}else {
-		(*event)->topic = topic;
-		(*event)->properties = properties;
-		properties_set((*event)->properties, (char *)EVENT_TOPIC, topic);
-	}
-	return status;
-}
-
-celix_status_t containsProperty(event_pt *event, char *property, bool *result){
-	celix_status_t status = CELIX_SUCCESS;
-	if((*event)==NULL || property == NULL){
-		status = CELIX_BUNDLE_EXCEPTION;
-	}else {
-		char * propertyValue = properties_get((*event)->properties,property);
-		if(propertyValue == NULL){
-			(*result)= false;
-		}else {
-			(*result) = true;
-		}
-	}
-	return status;
-}
-
-celix_status_t event_equals(event_pt *event, event_pt *compare, bool *result){
-	celix_status_t status = CELIX_SUCCESS;
-	if(event == compare){
-		(*result) = true;
-	}else {
-		int sizeofEvent = hashMap_size((*event)->properties);
-		int sizeofCompare = hashMap_size((*compare)->properties);
-		if(sizeofEvent == sizeofCompare){
-			(*result) = true;
-		}else {
-
-		}
-	}
-	return status;
-}
-
-celix_status_t getProperty(event_pt *event, char *propertyKey,  char **propertyValue){
-	celix_status_t status = CELIX_SUCCESS;
-	*propertyValue = properties_get((*event)->properties,propertyKey);
-
-	return status;
-}
-
-celix_status_t getPropertyNames(event_pt *event, array_list_pt *names){
-	celix_status_t status = CELIX_SUCCESS;
-	properties_pt properties =  (*event)->properties;
-	if (hashMap_size(properties) > 0) {
-		hash_map_iterator_pt iterator = hashMapIterator_create(properties);
-		while (hashMapIterator_hasNext(iterator)) {
-			hash_map_entry_pt entry = hashMapIterator_nextEntry(iterator);
-			char * key =hashMapEntry_getKey(entry);
-			arrayList_add((*names),key);
-		}
-	}
-	return status;
-}
-
-celix_status_t getTopic(event_pt *event, char **topic){
-	celix_status_t status = CELIX_SUCCESS;
-	char *value;
-	value = properties_get((*event)->properties,(char*) EVENT_TOPIC);
-	*topic = value;
-
-	return status;
-}
-
-celix_status_t hashCode(event_pt *event, int *hashCode){
-	celix_status_t status = CELIX_SUCCESS;
-	return status;
-}
-
-celix_status_t matches(event_pt *event){
-	celix_status_t status = CELIX_SUCCESS;
-	return status;
-}
-
-celix_status_t toString(event_pt *event, char *eventString){
-	celix_status_t status = CELIX_SUCCESS;
-	return status;
-}
-
-
-
-
-
+///**
+// *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.
+// */
+///*
+// * event_impl.c
+// *
+// *  \Created on: Aug 22, 2013
+// *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
+// *  \copyright	Apache License, Version 2.0
+// *
+// */
+//
+//
+//#include "event.h"
+//#include "event_constants.h"
+//#include "celix_errno.h"
+//#include "stddef.h"
+//#include <apr.h>
+//#include <apr_pools.h>
+//struct event {
+//	char *topic;
+//	properties_pt properties;
+//};
+//
+//celix_status_t createEvent(char *topic, properties_pt properties, apr_pool_t *pool, event_pt *event){
+//	celix_status_t status = CELIX_SUCCESS;
+//
+//	*event= apr_palloc(pool,sizeof(**event));
+//	if(!*event){
+//	       status = CELIX_ENOMEM;
+//	}else {
+//		(*event)->topic = topic;
+//		(*event)->properties = properties;
+//		properties_set((*event)->properties, (char *)EVENT_TOPIC, topic);
+//	}
+//	return status;
+//}
+//
+//celix_status_t containsProperty(event_pt *event, char *property, bool *result){
+//	celix_status_t status = CELIX_SUCCESS;
+//	if((*event)==NULL || property == NULL){
+//		status = CELIX_BUNDLE_EXCEPTION;
+//	}else {
+//		char * propertyValue = properties_get((*event)->properties,property);
+//		if(propertyValue == NULL){
+//			(*result)= false;
+//		}else {
+//			(*result) = true;
+//		}
+//	}
+//	return status;
+//}
+//
+//celix_status_t event_equals(event_pt *event, event_pt *compare, bool *result){
+//	celix_status_t status = CELIX_SUCCESS;
+//	if(event == compare){
+//		(*result) = true;
+//	}else {
+//		int sizeofEvent = hashMap_size((*event)->properties);
+//		int sizeofCompare = hashMap_size((*compare)->properties);
+//		if(sizeofEvent == sizeofCompare){
+//			(*result) = true;
+//		}else {
+//
+//		}
+//	}
+//	return status;
+//}
+//
+//celix_status_t getProperty(event_pt *event, char *propertyKey,  char **propertyValue){
+//	celix_status_t status = CELIX_SUCCESS;
+//	*propertyValue = properties_get((*event)->properties,propertyKey);
+//
+//	return status;
+//}
+//
+//celix_status_t getPropertyNames(event_pt *event, array_list_pt *names){
+//	celix_status_t status = CELIX_SUCCESS;
+//	properties_pt properties =  (*event)->properties;
+//	if (hashMap_size(properties) > 0) {
+//		hash_map_iterator_pt iterator = hashMapIterator_create(properties);
+//		while (hashMapIterator_hasNext(iterator)) {
+//			hash_map_entry_pt entry = hashMapIterator_nextEntry(iterator);
+//			char * key =hashMapEntry_getKey(entry);
+//			arrayList_add((*names),key);
+//		}
+//	}
+//	return status;
+//}
+//
+//celix_status_t getTopic(event_pt *event, char **topic){
+//	celix_status_t status = CELIX_SUCCESS;
+//	char *value;
+//	value = properties_get((*event)->properties,(char*) EVENT_TOPIC);
+//	*topic = value;
+//
+//	return status;
+//}
+//
+//celix_status_t hashCode(event_pt *event, int *hashCode){
+//	celix_status_t status = CELIX_SUCCESS;
+//	return status;
+//}
+//
+//celix_status_t matches(event_pt *event){
+//	celix_status_t status = CELIX_SUCCESS;
+//	return status;
+//}
+//
+//celix_status_t toString(event_pt *event, char *eventString){
+//	celix_status_t status = CELIX_SUCCESS;
+//	return status;
+//}
+//
+//
+//
+//
+//


[6/7] celix git commit: turned off event_admin since it is unstable

Posted by ej...@apache.org.
turned off event_admin since it is unstable


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

Branch: refs/heads/develop
Commit: 4042d88383c37cc3a25230a8b98f89d19b6507cc
Parents: 5d64b63
Author: Erik Jansman <ej...@apache.org>
Authored: Tue Jul 12 16:09:04 2016 +0200
Committer: Ealanrian <er...@jansman.eu>
Committed: Tue Jul 12 16:09:04 2016 +0200

----------------------------------------------------------------------
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/4042d883/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bbbd4b7..0756cab 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -81,7 +81,7 @@ add_subdirectory(shell)
 add_subdirectory(log_writer)
 add_subdirectory(log_service)
 
-add_subdirectory(event_admin)# event_admin is still bases on APR
+#add_subdirectory(event_admin)# event_admin is unstable
 add_subdirectory(dependency_manager)
 #add_subdirectory(scr) scr still needs APR
 


[3/7] celix git commit: Work on event admin. now builds without segfaults. 1 dangling service references

Posted by ej...@apache.org.
Work on event admin. now builds without segfaults. 1 dangling service references


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

Branch: refs/heads/develop
Commit: c72fbba6c059a39860069c8704970f48b5298ea2
Parents: 89ff35c
Author: Erik Jansman <ej...@apache.org>
Authored: Tue Jul 12 10:39:53 2016 +0200
Committer: Ealanrian <er...@jansman.eu>
Committed: Tue Jul 12 10:39:53 2016 +0200

----------------------------------------------------------------------
 event_admin/CMakeLists.txt                      |  7 ++-
 .../private/include/event_admin_impl.h          | 18 ++++---
 .../private/src/event_admin_activator.c         | 13 +++--
 .../event_admin/private/src/event_admin_impl.c  | 55 +++++---------------
 .../event_admin/private/src/event_impl.c        | 22 ++++----
 .../event_admin/public/include/event_admin.h    |  9 ++--
 6 files changed, 52 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/c72fbba6/event_admin/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/event_admin/CMakeLists.txt b/event_admin/CMakeLists.txt
index d4d81c6..3414c90 100644
--- a/event_admin/CMakeLists.txt
+++ b/event_admin/CMakeLists.txt
@@ -22,9 +22,14 @@ if(EVENT_ADMIN)
 	add_subdirectory(event_admin)
 #	add_subdirectory(event_handler)
 #	add_subdirectory(event_publisher)
-	
+
 	#deploy("event_admin_bundle" BUNDLES event_admin shell shell_tui log_service log_writer)
   #  deploy("event_publisher_example" BUNDLES event_admin event_publisher shell shell_tui log_service log_writer)
 #	deploy("event_handler_example" BUNDLES event_admin event_handler shell shell_tui log_service log_writer)
 #	deploy("event_admin_example" BUNDLES event_admin event_publisher event_handler shell shell_tui log_service log_writer)
+	add_deploy(event_admin_service
+			NAME "event_admin_service"
+			GROUP "event_admin/event_admin"
+			BUNDLES event_admin shell shell_tui log_service log_writer
+			)
 endif(EVENT_ADMIN)

http://git-wip-us.apache.org/repos/asf/celix/blob/c72fbba6/event_admin/event_admin/private/include/event_admin_impl.h
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/include/event_admin_impl.h b/event_admin/event_admin/private/include/event_admin_impl.h
index 0aded11..20b0f1b 100644
--- a/event_admin/event_admin/private/include/event_admin_impl.h
+++ b/event_admin/event_admin/private/include/event_admin_impl.h
@@ -101,7 +101,8 @@ celix_status_t eventAdmin_removedService(void * handle, service_reference_pt ref
  * @param char *topic, the topic string.
  * @param array_list_pt event_handlers. The array list to contain the interested handlers.
  */
-celix_status_t eventAdmin_findHandlersByTopic(event_admin_pt event_admin, char *topic , array_list_pt event_handlers);
+celix_status_t eventAdmin_findHandlersByTopic(event_admin_pt event_admin, const char *topic,
+                                              array_list_pt event_handlers);
 /**
  * @desc create the needed event channels for an event handler.
  * @desc apr_pool_t *pool. a memory pool pointer.
@@ -109,21 +110,24 @@ celix_status_t eventAdmin_findHandlersByTopic(event_admin_pt event_admin, char *
  * @desc char *topic the topic
  * @desc channel_t *channel. the top level channel.
  */
-celix_status_t eventAdmin_createEventChannelsByEventHandler(event_handler_service_pt event_handler_service, char *topic, channel_t *channel);
+celix_status_t eventAdmin_createEventChannelsByEventHandler(event_handler_service_pt event_handler_service,
+                                                            const char *topic, channel_t *channel);
 /**
  * @desc mutex functions for the channels
  * @param event_admin_pt event_admin. the event admin instance.
  * @param char *topic. the topic for which the channels need to be locked or unlocked
  */
-celix_status_t eventAdmin_lockHandlersList(event_admin_pt event_admin, char *topic );
-celix_status_t eventAdmin_releaseHandersList(event_admin_pt event_admin, char *topic );
+celix_status_t eventAdmin_lockHandlersList(event_admin_pt event_admin, const char *topic);
+
+celix_status_t eventAdmin_releaseHandersList(event_admin_pt event_admin, const char *topic);
 
 /**
  * @desc create an event
  * @param char *topic. String containing the topic
  * @param properties_pt properties.
  */
-celix_status_t eventAdmin_createEvent(event_admin_pt event_admin, char *topic, properties_pt properties, event_pt *event);
+celix_status_t eventAdmin_createEvent(event_admin_pt event_admin, const char *topic, properties_pt properties,
+                                      event_pt *event);
 /**
  * @desc checks if an event contains the property
  * @param event_pt *event. the event to check
@@ -144,7 +148,7 @@ celix_status_t eventAdmin_event_equals( event_pt *event, event_pt *compare, bool
  * @param char *propertyKey the key of the property to get
  * @param char **propertyValue. the result param will contain the property if it exists in the event.
  */
-celix_status_t eventAdmin_getProperty( event_pt *event, char *propertyKey, char **propertyValue);
+celix_status_t eventAdmin_getProperty(event_pt *event, char *propertyKey, const char **propertyValue);
 /**
  * @desc gets all property names from the event
  * @param event_pt *event. the event to get the property names from
@@ -156,7 +160,7 @@ celix_status_t eventAdmin_getPropertyNames( event_pt *event, array_list_pt *name
  * @param event_pt *event. the event to get the topic from
  * @param char **topic, result pointer will contain the topic.
  */
-celix_status_t eventAdmin_getTopic( event_pt *event, char **topic);
+celix_status_t eventAdmin_getTopic(event_pt *event, const char **topic);
 celix_status_t eventAdmin_hashCode(event_pt *event, int *hashCode);
 celix_status_t eventAdmin_matches( event_pt *event);
 celix_status_t eventAdmin_toString( event_pt *event, char *eventString);

http://git-wip-us.apache.org/repos/asf/celix/blob/c72fbba6/event_admin/event_admin/private/src/event_admin_activator.c
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/src/event_admin_activator.c b/event_admin/event_admin/private/src/event_admin_activator.c
index 15fb014..bf89236 100644
--- a/event_admin/event_admin/private/src/event_admin_activator.c
+++ b/event_admin/event_admin/private/src/event_admin_activator.c
@@ -106,7 +106,6 @@ celix_status_t bundleActivator_start(void * userData, bundle_context_pt context)
 		properties_pt properties = NULL;
 		properties = properties_create();
 		event_admin_service = activator->event_admin_service;
-		//printf("pointer of event admin service %p\n",event_admin_service);
 		bundleContext_registerService(context, (char *) EVENT_ADMIN_NAME, event_admin_service, properties, &activator->registration);
 		logHelper_start(activator->loghelper);
 	}
@@ -116,20 +115,20 @@ celix_status_t bundleActivator_start(void * userData, bundle_context_pt context)
 celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) {
 	celix_status_t status = CELIX_SUCCESS;
 	struct activator * data =  userData;
-
+    serviceRegistration_unregister(data->registration);
 	serviceTracker_close(data->tracker);
 	status = logHelper_stop(data->loghelper);
-
+    logHelper_destroy(&data->loghelper);
+    free(data->event_admin_service);
 	return status;
 }
 
 
 celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) {
 	celix_status_t status = CELIX_SUCCESS;
-	struct activator * data =  userData;
-	eventAdmin_destroy(&data->event_admin);
-	free(data->event_admin_service);
-	status = logHelper_destroy(&data->loghelper);
+    struct activator *activator = userData;
+
+    free(activator);
 
 	return status;
 }

http://git-wip-us.apache.org/repos/asf/celix/blob/c72fbba6/event_admin/event_admin/private/src/event_admin_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/src/event_admin_impl.c b/event_admin/event_admin/private/src/event_admin_impl.c
index 65419d0..d074323 100644
--- a/event_admin/event_admin/private/src/event_admin_impl.c
+++ b/event_admin/event_admin/private/src/event_admin_impl.c
@@ -49,19 +49,20 @@ celix_status_t eventAdmin_create(bundle_context_pt context, event_admin_pt *even
 celix_status_t eventAdmin_destroy(event_admin_pt *event_admin)
 {
 	celix_status_t status = CELIX_SUCCESS;
-	free(event_admin);
+	//free(*event_admin);
 	return status;
 }
 
 celix_status_t eventAdmin_getEventHandlersByChannel(bundle_context_pt context, const char * serviceName, array_list_pt *eventHandlers) {
-	celix_status_t status = bundleContext_getServiceReferences(context, serviceName, NULL, eventHandlers);
+	celix_status_t status = CELIX_SUCCESS;
+	//celix_status_t status = bundleContext_getServiceReferences(context, serviceName, NULL, eventHandlers);
 	return status;
 }
 
 celix_status_t eventAdmin_postEvent(event_admin_pt event_admin, event_pt event) {
 	celix_status_t status = CELIX_SUCCESS;
 
-	char *topic;
+	const char *topic;
 
     eventAdmin_getTopic(&event, &topic);
 
@@ -83,7 +84,7 @@ celix_status_t eventAdmin_postEvent(event_admin_pt event_admin, event_pt event)
 celix_status_t eventAdmin_sendEvent(event_admin_pt event_admin, event_pt event) {
 	celix_status_t status = CELIX_SUCCESS;
 
-	char *topic;
+	const char *topic;
 	eventAdmin_getTopic(&event, &topic);
 
 	array_list_pt event_handlers;
@@ -100,7 +101,8 @@ celix_status_t eventAdmin_sendEvent(event_admin_pt event_admin, event_pt event)
 	return status;
 }
 
-celix_status_t eventAdmin_findHandlersByTopic(event_admin_pt event_admin, char *topic, array_list_pt event_handlers) {
+celix_status_t eventAdmin_findHandlersByTopic(event_admin_pt event_admin, const char *topic,
+											  array_list_pt event_handlers) {
 	celix_status_t status = CELIX_SUCCESS;
 	hash_map_pt channels = event_admin->channels;
     channel_t channel = hashMap_get(channels, topic);
@@ -119,7 +121,8 @@ celix_status_t eventAdmin_findHandlersByTopic(event_admin_pt event_admin, char *
 	return status;
 }
 
-celix_status_t eventAdmin_createEventChannels(event_admin_pt *event_admin, char *topic, event_handler_service_pt event_handler_service){
+celix_status_t eventAdmin_createEventChannels(event_admin_pt *event_admin, const char *topic,
+											  event_handler_service_pt event_handler_service) {
 	celix_status_t status = CELIX_SUCCESS;
     channel_t channel = hashMap_get((*event_admin)->channels, topic);
 	if (channel == NULL) {
@@ -145,44 +148,10 @@ celix_status_t eventAdmin_createEventChannels(event_admin_pt *event_admin, char
     }
 	return status;
 
-	/*apr_pool_t *subPool= NULL;
-     apr_pool_create(&subPool,(*event_admin)->pool);
-     char delims[] = "/";
-     char *result = NULL;
-     result = strtok_r( topic, delims );
-     if(result != NULL){
-     strcpy(complete_channel_name, result);
-     }
-     while( result != NULL  && status == CELIX_SUCCESS) {
-     channel_t channel;
-     //check if the channel exists
-     if(hashMap_containsKey((*event_admin)->channels,complete_channel_name)==1) {
-     channel = hashMap_get((*event_admin)->channels,complete_channel_name);
-     //hashMap_put(channel->eventHandlers,&event_handler_service,event_handler_service);
-     }else {
-     //create channel
-     channel = apr_palloc(subPool, sizeof(*channel));
-     if(!channel){
-     status = CELIX_ENOMEM;
-     }else {
-     channel->topic = complete_channel_name;
-     channel->eventHandlers = hashMap_create(NULL,NULL,NULL,NULL);
-     channel->channelLock = NULL;
-     apr_thread_mutex_create(&channel->channelLock,APR_THREAD_MUTEX_NESTED, subPool);
-     }
-     }
-     result = strtok_r( NULL, delims );
-     if(result != NULL && status == CELIX_SUCCESS){
-     strcat(complete_channel_name, "/");
-     strcat(complete_channel_name, result);
-     }else if(status == CELIX_SUCCESS) {
-     hashMap_put(channel->eventHandlers,&event_handler_service,event_handler_service);
-     }
-     }*/
 
 }
 
-celix_status_t eventAdmin_lockHandlersList(event_admin_pt event_admin, char *topic) {
+celix_status_t eventAdmin_lockHandlersList(event_admin_pt event_admin, const char *topic) {
 	celix_status_t status = CELIX_SUCCESS;
     /*channel_t channel = hashMap_get(event_admin->channels, topic);
 	if (channel != NULL) {
@@ -196,7 +165,7 @@ celix_status_t eventAdmin_lockHandlersList(event_admin_pt event_admin, char *top
 	return status;
 }
 
-celix_status_t eventAdmin_releaseHandersList(event_admin_pt event_admin, char *topic) {
+celix_status_t eventAdmin_releaseHandersList(event_admin_pt event_admin, const char *topic) {
 	celix_status_t status = CELIX_SUCCESS;
     channel_t channel = hashMap_get(event_admin->channels, topic);
 	if (channel != NULL) {
@@ -219,7 +188,7 @@ celix_status_t eventAdmin_addedService(void * handle, service_reference_pt ref,
 	event_admin_pt event_admin = handle;
 	event_handler_service_pt event_handler_service = NULL;
 	event_handler_service = (event_handler_service_pt) service;
-	char *topic = NULL;
+	const char *topic = NULL;
 	serviceReference_getProperty(ref, (char*)EVENT_TOPIC, &topic);
 	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "Original TOPIC: %s", topic);
 	eventAdmin_createEventChannels(&event_admin,topic,event_handler_service);

http://git-wip-us.apache.org/repos/asf/celix/blob/c72fbba6/event_admin/event_admin/private/src/event_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/src/event_impl.c b/event_admin/event_admin/private/src/event_impl.c
index b3a7f43..94818d9 100644
--- a/event_admin/event_admin/private/src/event_impl.c
+++ b/event_admin/event_admin/private/src/event_impl.c
@@ -24,28 +24,28 @@
  *  \copyright	Apache License, Version 2.0
  *
  */
-
+#include <stdlib.h>
 
 #include "event_admin.h"
 #include "event_admin_impl.h"
 #include "event_constants.h"
 #include "celix_errno.h"
 #include "stddef.h"
-#include <apr.h>
-#include <apr_pools.h>
+
 
 struct event {
-	char *topic;
+	const char *topic;
 	properties_pt properties;
 };
 
-celix_status_t eventAdmin_createEvent(event_admin_pt event_admin, char *topic, properties_pt properties, event_pt *event){
+celix_status_t eventAdmin_createEvent(event_admin_pt event_admin, const char *topic, properties_pt properties,
+									  event_pt *event) {
 	celix_status_t status = CELIX_SUCCESS;
 
 	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "create event event admin pointer: %p",event_admin);
-	logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "pool create event: %p",event_admin->pool);
 
-	*event = apr_palloc(event_admin->pool,sizeof(**event));
+
+	*event = calloc(1, sizeof(**event));
 	if(!*event){
 	       status = CELIX_ENOMEM;
 	       logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "No MEM");
@@ -63,7 +63,7 @@ celix_status_t eventAdmin_containsProperty( event_pt *event, char *property, boo
 	if((*event)==NULL || property == NULL){
 		status = CELIX_BUNDLE_EXCEPTION;
 	}else {
-		char * propertyValue = properties_get((*event)->properties,property);
+		const char *propertyValue = properties_get((*event)->properties, property);
 		if(propertyValue == NULL){
 			(*result)= false;
 		}else {
@@ -89,7 +89,7 @@ celix_status_t eventAdmin_event_equals( event_pt *event, event_pt *compare, bool
 	return status;
 }
 
-celix_status_t eventAdmin_getProperty( event_pt *event, char *propertyKey,  char **propertyValue){
+celix_status_t eventAdmin_getProperty(event_pt *event, char *propertyKey, const char **propertyValue) {
 	celix_status_t status = CELIX_SUCCESS;
 	*propertyValue = properties_get((*event)->properties,propertyKey);
 
@@ -110,9 +110,9 @@ celix_status_t eventAdmin_getPropertyNames( event_pt *event, array_list_pt *name
 	return status;
 }
 
-celix_status_t eventAdmin_getTopic( event_pt *event, char **topic){
+celix_status_t eventAdmin_getTopic(event_pt *event, const char **topic) {
 	celix_status_t status = CELIX_SUCCESS;
-	char *value;
+	const char *value;
 	value = properties_get((*event)->properties,(char*) EVENT_TOPIC);
 	*topic = value;
 

http://git-wip-us.apache.org/repos/asf/celix/blob/c72fbba6/event_admin/event_admin/public/include/event_admin.h
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/public/include/event_admin.h b/event_admin/event_admin/public/include/event_admin.h
index 47b431f..b338339 100644
--- a/event_admin/event_admin/public/include/event_admin.h
+++ b/event_admin/event_admin/public/include/event_admin.h
@@ -46,12 +46,15 @@ struct event_admin_service {
 	celix_status_t (*postEvent)(event_admin_pt event_admin, event_pt event);
 	celix_status_t (*sendEvent)(event_admin_pt event_admin, event_pt event);
 
-	celix_status_t (*createEvent)(event_admin_pt event_admin, char *topic, properties_pt properties,  event_pt *event);
+	celix_status_t (*createEvent)(event_admin_pt event_admin, const char *topic, properties_pt properties,
+								  event_pt *event);
 	celix_status_t (*containsProperty)(event_pt *event, char *property, bool *result);
 	celix_status_t (*event_equals)(event_pt *event, event_pt *compare, bool *result);
-	celix_status_t (*getProperty)( event_pt *event, char *propertyKey, char **propertyValue);
+
+	celix_status_t (*getProperty)(event_pt *event, char *propertyKey, const char **propertyValue);
 	celix_status_t (*getPropertyNames)(event_pt *event, array_list_pt *names);
-	celix_status_t (*getTopic)( event_pt *event, char **topic);
+
+	celix_status_t (*getTopic)(event_pt *event, const char **topic);
 	celix_status_t (*hashCode)(event_pt *event, int *hashCode);
 	celix_status_t (*matches)( event_pt *event);
 	celix_status_t (*toString)( event_pt *event, char *eventString);


[7/7] celix git commit: Merge branch 'develop' of http://git.apache.org/celix into develop

Posted by ej...@apache.org.
Merge branch 'develop' of http://git.apache.org/celix into develop


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

Branch: refs/heads/develop
Commit: 3a028e705869d45585d1cc5bf8ed4c1aec4018bd
Parents: 4042d88 e7fc3a6
Author: Ealanrian <er...@jansman.eu>
Authored: Tue Jul 12 16:09:17 2016 +0200
Committer: Ealanrian <er...@jansman.eu>
Committed: Tue Jul 12 16:09:17 2016 +0200

----------------------------------------------------------------------
 cmake/cmake_celix/Packaging.cmake        | 90 +++++++++++++++++++--------
 cmake/cmake_celix/RunConfig.in           | 22 -------
 cmake/cmake_celix/RunConfig.in.cmake     | 24 +++++++
 documents/getting_started/readme.md      | 25 ++++----
 framework/private/mock/properties_mock.c |  3 +-
 framework/private/src/framework.c        | 40 +++++-------
 framework/private/src/manifest.c         |  6 +-
 framework/private/src/properties.c       | 15 ++++-
 framework/public/include/properties.h    |  2 +-
 utils/private/include/hash_map_private.h |  2 +-
 utils/private/src/hash_map.c             |  2 +-
 11 files changed, 132 insertions(+), 99 deletions(-)
----------------------------------------------------------------------



[5/7] celix git commit: demo working again, unstable sadly

Posted by ej...@apache.org.
demo working again, unstable sadly


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

Branch: refs/heads/develop
Commit: 5d64b63f2face61b99add99bde2e0c3c1a236dbd
Parents: 514e274
Author: Ealanrian <er...@jansman.eu>
Authored: Tue Jul 12 16:07:43 2016 +0200
Committer: Ealanrian <er...@jansman.eu>
Committed: Tue Jul 12 16:07:43 2016 +0200

----------------------------------------------------------------------
 .../event_admin/private/src/event_impl.c        |   4 -
 .../event_admin/public/include/event_admin.h    |   7 +-
 .../event_admin/public/include/event_handler.h  |   3 +
 .../private/src/event_handler_impl.c            |  18 ++-
 event_admin/utils/CMakeLists.txt                |  27 ----
 event_admin/utils/private/src/event_impl.c      | 133 -------------------
 event_admin/utils/public/include/event.h        |  36 -----
 7 files changed, 22 insertions(+), 206 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/5d64b63f/event_admin/event_admin/private/src/event_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/private/src/event_impl.c b/event_admin/event_admin/private/src/event_impl.c
index 94818d9..aad9877 100644
--- a/event_admin/event_admin/private/src/event_impl.c
+++ b/event_admin/event_admin/private/src/event_impl.c
@@ -33,10 +33,6 @@
 #include "stddef.h"
 
 
-struct event {
-	const char *topic;
-	properties_pt properties;
-};
 
 celix_status_t eventAdmin_createEvent(event_admin_pt event_admin, const char *topic, properties_pt properties,
 									  event_pt *event) {

http://git-wip-us.apache.org/repos/asf/celix/blob/5d64b63f/event_admin/event_admin/public/include/event_admin.h
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/public/include/event_admin.h b/event_admin/event_admin/public/include/event_admin.h
index b338339..4955b54 100644
--- a/event_admin/event_admin/public/include/event_admin.h
+++ b/event_admin/event_admin/public/include/event_admin.h
@@ -26,7 +26,6 @@
 
 #ifndef EVENT_ADMIN_H_
 #define EVENT_ADMIN_H_
-/*#include "event.h"*/
 #include "celix_errno.h"
 
 #include "listener_hook_service.h"
@@ -34,7 +33,13 @@
 #define EVENT_ADMIN_NAME "event_admin"
 typedef struct event_admin *event_admin_pt;
 typedef struct event_admin_service *event_admin_service_pt;
+
+struct event {
+	const char *topic;
+	properties_pt properties;
+};
 typedef struct event *event_pt;
+
 /**
  * @desc service description for the event admin.
  * @param event_admin_pt eventAdmin. incomplete type for the event admin instance.

http://git-wip-us.apache.org/repos/asf/celix/blob/5d64b63f/event_admin/event_admin/public/include/event_handler.h
----------------------------------------------------------------------
diff --git a/event_admin/event_admin/public/include/event_handler.h b/event_admin/event_admin/public/include/event_handler.h
index d7b71f6..5f76c6d 100644
--- a/event_admin/event_admin/public/include/event_handler.h
+++ b/event_admin/event_admin/public/include/event_handler.h
@@ -32,6 +32,9 @@ static const char * const EVENT_HANDLER_SERVICE = "service.event.handler";
 
 typedef struct event_handler_service *event_handler_service_pt;
 typedef struct event_handler *event_handler_pt; //ADT
+
+
+
 /**
  * @desc description of the event handler service
  * @param event_handler_pt event_handler incomplete type pointer for the event_handler instance

http://git-wip-us.apache.org/repos/asf/celix/blob/5d64b63f/event_admin/event_handler/private/src/event_handler_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/event_handler/private/src/event_handler_impl.c b/event_admin/event_handler/private/src/event_handler_impl.c
index 13b3c19..52ff1b7 100644
--- a/event_admin/event_handler/private/src/event_handler_impl.c
+++ b/event_admin/event_handler/private/src/event_handler_impl.c
@@ -54,19 +54,27 @@ celix_status_t eventHandlerCreate(bundle_context_pt context, event_handler_pt *e
 celix_status_t eventHandlerHandleEvent(event_handler_pt *event_handler, event_pt event) {
 	celix_status_t status = CELIX_SUCCESS;
 	if (event != NULL) {
-        const char *topic = NULL;
-		status = (*event_handler)->event_admin_service->getTopic(&event, &topic);
+        const char *topic = event->topic;
+        //status = (*event_handler)->event_admin_service->getTopic(&event, &topic);
 		logHelper_log((*event_handler)->loghelper, OSGI_LOGSERVICE_INFO, "[SUB] topic of event: %s.", topic);
 
 		array_list_pt propertyNames;
 		arrayList_create(&propertyNames);
-		status = (*event_handler)->event_admin_service->getPropertyNames(&event, &propertyNames);
-
+        properties_pt properties = event->properties;
+        if (hashMap_size(properties) > 0) {
+            hash_map_iterator_pt iterator = hashMapIterator_create(properties);
+            while (hashMapIterator_hasNext(iterator)) {
+                hash_map_entry_pt entry = hashMapIterator_nextEntry(iterator);
+                char *key = hashMapEntry_getKey(entry);
+                arrayList_add(propertyNames, key);
+            }
+        }
 		array_list_iterator_pt propertyIter = arrayListIterator_create(propertyNames);
 		while (arrayListIterator_hasNext(propertyIter)) {
             char *key = arrayListIterator_next(propertyIter);
             const char *value = NULL;
-			(*event_handler)->event_admin_service->getProperty(&event,key,&value);
+            value = properties_get((*event).properties, key);
+
 
 			logHelper_log((*event_handler)->loghelper, OSGI_LOGSERVICE_INFO, "[SUB] Key: %s value: %s.", key, value);
 		}

http://git-wip-us.apache.org/repos/asf/celix/blob/5d64b63f/event_admin/utils/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/event_admin/utils/CMakeLists.txt b/event_admin/utils/CMakeLists.txt
deleted file mode 100644
index 576dd08..0000000
--- a/event_admin/utils/CMakeLists.txt
+++ /dev/null
@@ -1,27 +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_package(APR REQUIRED)
-
-include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
-include_directories("${PROJECT_SOURCE_DIR}/event_admin/event_admin/public/include")
-include_directories(public/include)
-
-add_library(event_admin_utils STATIC private/src/event_impl.c)
-target_link_libraries(event_admin_utils ${APRUTIL_LIBRARY})
-#install(TARGETS event_admin_utils DESTINATION lib COMPONENT framework)
-#FILE(GLOB files "public/include/*.h")
-#INSTALL(FILES ${files} DESTINATION include/celix COMPONENT framework)

http://git-wip-us.apache.org/repos/asf/celix/blob/5d64b63f/event_admin/utils/private/src/event_impl.c
----------------------------------------------------------------------
diff --git a/event_admin/utils/private/src/event_impl.c b/event_admin/utils/private/src/event_impl.c
deleted file mode 100644
index bd87358..0000000
--- a/event_admin/utils/private/src/event_impl.c
+++ /dev/null
@@ -1,133 +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.
-// */
-///*
-// * event_impl.c
-// *
-// *  \Created on: Aug 22, 2013
-// *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
-// *  \copyright	Apache License, Version 2.0
-// *
-// */
-//
-//
-//#include "event.h"
-//#include "event_constants.h"
-//#include "celix_errno.h"
-//#include "stddef.h"
-//#include <apr.h>
-//#include <apr_pools.h>
-//struct event {
-//	char *topic;
-//	properties_pt properties;
-//};
-//
-//celix_status_t createEvent(char *topic, properties_pt properties, apr_pool_t *pool, event_pt *event){
-//	celix_status_t status = CELIX_SUCCESS;
-//
-//	*event= apr_palloc(pool,sizeof(**event));
-//	if(!*event){
-//	       status = CELIX_ENOMEM;
-//	}else {
-//		(*event)->topic = topic;
-//		(*event)->properties = properties;
-//		properties_set((*event)->properties, (char *)EVENT_TOPIC, topic);
-//	}
-//	return status;
-//}
-//
-//celix_status_t containsProperty(event_pt *event, char *property, bool *result){
-//	celix_status_t status = CELIX_SUCCESS;
-//	if((*event)==NULL || property == NULL){
-//		status = CELIX_BUNDLE_EXCEPTION;
-//	}else {
-//		char * propertyValue = properties_get((*event)->properties,property);
-//		if(propertyValue == NULL){
-//			(*result)= false;
-//		}else {
-//			(*result) = true;
-//		}
-//	}
-//	return status;
-//}
-//
-//celix_status_t event_equals(event_pt *event, event_pt *compare, bool *result){
-//	celix_status_t status = CELIX_SUCCESS;
-//	if(event == compare){
-//		(*result) = true;
-//	}else {
-//		int sizeofEvent = hashMap_size((*event)->properties);
-//		int sizeofCompare = hashMap_size((*compare)->properties);
-//		if(sizeofEvent == sizeofCompare){
-//			(*result) = true;
-//		}else {
-//
-//		}
-//	}
-//	return status;
-//}
-//
-//celix_status_t getProperty(event_pt *event, char *propertyKey,  char **propertyValue){
-//	celix_status_t status = CELIX_SUCCESS;
-//	*propertyValue = properties_get((*event)->properties,propertyKey);
-//
-//	return status;
-//}
-//
-//celix_status_t getPropertyNames(event_pt *event, array_list_pt *names){
-//	celix_status_t status = CELIX_SUCCESS;
-//	properties_pt properties =  (*event)->properties;
-//	if (hashMap_size(properties) > 0) {
-//		hash_map_iterator_pt iterator = hashMapIterator_create(properties);
-//		while (hashMapIterator_hasNext(iterator)) {
-//			hash_map_entry_pt entry = hashMapIterator_nextEntry(iterator);
-//			char * key =hashMapEntry_getKey(entry);
-//			arrayList_add((*names),key);
-//		}
-//	}
-//	return status;
-//}
-//
-//celix_status_t getTopic(event_pt *event, char **topic){
-//	celix_status_t status = CELIX_SUCCESS;
-//	char *value;
-//	value = properties_get((*event)->properties,(char*) EVENT_TOPIC);
-//	*topic = value;
-//
-//	return status;
-//}
-//
-//celix_status_t hashCode(event_pt *event, int *hashCode){
-//	celix_status_t status = CELIX_SUCCESS;
-//	return status;
-//}
-//
-//celix_status_t matches(event_pt *event){
-//	celix_status_t status = CELIX_SUCCESS;
-//	return status;
-//}
-//
-//celix_status_t toString(event_pt *event, char *eventString){
-//	celix_status_t status = CELIX_SUCCESS;
-//	return status;
-//}
-//
-//
-//
-//
-//

http://git-wip-us.apache.org/repos/asf/celix/blob/5d64b63f/event_admin/utils/public/include/event.h
----------------------------------------------------------------------
diff --git a/event_admin/utils/public/include/event.h b/event_admin/utils/public/include/event.h
deleted file mode 100644
index 25a792d..0000000
--- a/event_admin/utils/public/include/event.h
+++ /dev/null
@@ -1,36 +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.
- */
-/*
- * event.h
- *
- *  \Created on: Jul 19, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-
-#ifndef EVENT_H_
-#define EVENT_H_
-#include "celix_errno.h"
-#include "properties.h"
-#include "array_list.h"
-
-
-
-#endif /* EVENT_H_ */