Author: abroekhuis
Date: Mon Dec  5 09:46:30 2011
New Revision: 1210381

URL: http://svn.apache.org/viewvc?rev=1210381&view=rev
Log:
Small bugfixes

Several small bugfixes concerning memory pools etc.

Modified:
    incubator/celix/trunk/CMakeLists.txt
    incubator/celix/trunk/dependency_manager/CMakeLists.txt
    incubator/celix/trunk/dependency_manager/dependency_activator_base.c
    incubator/celix/trunk/dependency_manager/dependency_manager.c
    incubator/celix/trunk/dependency_manager/service_component.c
    incubator/celix/trunk/dependency_manager/service_component_private.h
    incubator/celix/trunk/examples/whiteboard/tracker_depman/tracker.c
    incubator/celix/trunk/framework/private/include/constants.h
    incubator/celix/trunk/framework/private/include/headers.h
    incubator/celix/trunk/framework/private/src/bundle_context.c
    incubator/celix/trunk/framework/private/src/service_registration.c
    incubator/celix/trunk/shell/inspect_command.c
    incubator/celix/trunk/target.cmake

Modified: incubator/celix/trunk/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/CMakeLists.txt?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/CMakeLists.txt (original)
+++ incubator/celix/trunk/CMakeLists.txt Mon Dec  5 09:46:30 2011
@@ -61,5 +61,5 @@ add_subdirectory(remote_services)
 
 add_subdirectory(deployment_admin)
 
-#include(target.cmake)
+include(target.cmake)
 #enable_testing()

Modified: incubator/celix/trunk/dependency_manager/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/dependency_manager/CMakeLists.txt?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/dependency_manager/CMakeLists.txt (original)
+++ incubator/celix/trunk/dependency_manager/CMakeLists.txt Mon Dec  5 09:46:30 
2011
@@ -31,6 +31,6 @@ add_library(dependency_manager STATIC de
 include_directories("${PROJECT_SOURCE_DIR}/utils/public/include")
 target_link_libraries(dependency_manager framework)
 
-FILE(GLOB files dependency_activator_base.h service.h)
+FILE(GLOB files dependency_activator_base.h service.h dependency_manager.h 
service_component_private.h service_component.h service_dependency.h)
 INSTALL(FILES ${files} DESTINATION include/dependency_manager COMPONENT 
framework)
 install(TARGETS dependency_manager DESTINATION lib COMPONENT framework)

Modified: incubator/celix/trunk/dependency_manager/dependency_activator_base.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/dependency_manager/dependency_activator_base.c?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/dependency_manager/dependency_activator_base.c 
(original)
+++ incubator/celix/trunk/dependency_manager/dependency_activator_base.c Mon 
Dec  5 09:46:30 2011
@@ -39,9 +39,11 @@ typedef struct dependencyActivatorBase *
 
 celix_status_t bundleActivator_create(BUNDLE_CONTEXT context, void **userData) 
{
        apr_pool_t *pool;
+       apr_pool_t *npool = NULL;
        celix_status_t status = bundleContext_getMemoryPool(context, &pool);
+       apr_pool_create(&npool, pool);
        if (status == CELIX_SUCCESS) {
-               *userData = apr_palloc(pool, sizeof(DEPENDENCY_ACTIVATOR_BASE));
+               *userData = apr_palloc(npool, 
sizeof(DEPENDENCY_ACTIVATOR_BASE));
                ((DEPENDENCY_ACTIVATOR_BASE)(*userData))->userData = 
dm_create(context);;
        } else {
                status = CELIX_START_ERROR;

Modified: incubator/celix/trunk/dependency_manager/dependency_manager.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/dependency_manager/dependency_manager.c?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/dependency_manager/dependency_manager.c (original)
+++ incubator/celix/trunk/dependency_manager/dependency_manager.c Mon Dec  5 
09:46:30 2011
@@ -33,10 +33,12 @@
 DEPENDENCY_MANAGER dependencyManager_create(BUNDLE_CONTEXT context) {
        DEPENDENCY_MANAGER manager = (DEPENDENCY_MANAGER) 
malloc(sizeof(*manager));
        apr_pool_t *pool = NULL;
+       apr_pool_t *npool = NULL;
        bundleContext_getMemoryPool(context, &pool);
+       apr_pool_create(&npool, pool);
        manager->context = context;
        manager->services = NULL;
-       arrayList_create(pool, &manager->services);
+       arrayList_create(npool, &manager->services);
        return manager;
 }
 

Modified: incubator/celix/trunk/dependency_manager/service_component.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/dependency_manager/service_component.c?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/dependency_manager/service_component.c (original)
+++ incubator/celix/trunk/dependency_manager/service_component.c Mon Dec  5 
09:46:30 2011
@@ -69,6 +69,7 @@ SERVICE serviceComponent_create(BUNDLE_C
 
        if (mypool) {
         service = (SERVICE) apr_pcalloc(mypool, sizeof(*service));
+        service->pool = mypool;
         service->impl = NULL;
         service->serviceName = NULL;
         service->serviceRegistration = NULL;
@@ -125,10 +126,8 @@ SERVICE serviceComponent_addServiceDepen
                serviceDependency_start(dependency, service);
        }
 
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
        pthread_mutex_lock(&service->mutex);
-       new = state_create(arrayList_clone(pool, service->dependencies), 
!state_isInactive(old));
+       new = state_create(arrayList_clone(service->pool, 
service->dependencies), !state_isInactive(old));
        service->state = new;
        pthread_mutex_unlock(&service->mutex);
        serviceComponent_calculateStateChanges(service, old, new);
@@ -148,10 +147,8 @@ SERVICE serviceComponent_removeServiceDe
                serviceDependency_stop(dependency, service);
        }
 
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
        pthread_mutex_lock(&service->mutex);
-       new = state_create(arrayList_clone(pool, service->dependencies), 
!state_isInactive(old));
+       new = state_create(arrayList_clone(service->pool, 
service->dependencies), !state_isInactive(old));
        service->state = new;
        pthread_mutex_unlock(&service->mutex);
        serviceComponent_calculateStateChanges(service, old, new);
@@ -163,10 +160,8 @@ SERVICE serviceComponent_removeServiceDe
 void serviceComponent_dependencyAvailable(SERVICE service, SERVICE_DEPENDENCY 
dependency) {
        STATE old, new;
        pthread_mutex_lock(&service->mutex);
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
        old = service->state;
-       new = state_create(arrayList_clone(pool, service->dependencies), 
!state_isInactive(old));
+       new = state_create(arrayList_clone(service->pool, 
service->dependencies), !state_isInactive(old));
        service->state = new;
        pthread_mutex_unlock(&service->mutex);
        serviceComponent_calculateStateChanges(service, old, new);
@@ -190,11 +185,9 @@ void serviceComponent_dependencyChanged(
 
 void serviceComponent_dependencyUnavailable(SERVICE service, 
SERVICE_DEPENDENCY dependency) {
        STATE old, new;
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
        pthread_mutex_lock(&service->mutex);
        old = service->state;
-       new = state_create(arrayList_clone(pool, service->dependencies), 
!state_isInactive(old));
+       new = state_create(arrayList_clone(service->pool, 
service->dependencies), !state_isInactive(old));
        service->state = new;
        pthread_mutex_unlock(&service->mutex);
        serviceComponent_calculateStateChanges(service, old, new);
@@ -208,11 +201,9 @@ void serviceComponent_dependencyUnavaila
 void serviceComponent_start(SERVICE service) {
        bundleContext_registerService(service->context, SERVICE_COMPONENT_NAME, 
service, NULL, &service->serviceRegistration);
        STATE old, new;
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
        pthread_mutex_lock(&service->mutex);
        old = service->state;
-       new = state_create(arrayList_clone(pool, service->dependencies), true);
+       new = state_create(arrayList_clone(service->pool, 
service->dependencies), true);
        service->state = new;
        pthread_mutex_unlock(&service->mutex);
        serviceComponent_calculateStateChanges(service, old, new);
@@ -221,11 +212,9 @@ void serviceComponent_start(SERVICE serv
 
 void serviceComponent_stop(SERVICE service) {
        STATE old, new;
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
        pthread_mutex_lock(&service->mutex);
        old = service->state;
-       new = state_create(arrayList_clone(pool, service->dependencies), false);
+       new = state_create(arrayList_clone(service->pool, 
service->dependencies), false);
        service->state = new;
        pthread_mutex_unlock(&service->mutex);
        serviceComponent_calculateStateChanges(service, old, new);
@@ -265,9 +254,7 @@ void serviceComponent_deactivateService(
 }
 
 void serviceComponent_startTrackingOptional(SERVICE service, STATE state) {
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
-    ARRAY_LIST deps = arrayList_clone(pool, state->dependencies);
+    ARRAY_LIST deps = arrayList_clone(service->pool, state->dependencies);
        ARRAY_LIST_ITERATOR i = arrayListIterator_create(deps);
        while (arrayListIterator_hasNext(i)) {
                SERVICE_DEPENDENCY dependency = (SERVICE_DEPENDENCY) 
arrayListIterator_next(i);
@@ -280,9 +267,7 @@ void serviceComponent_startTrackingOptio
 }
 
 void serviceComponent_stopTrackingOptional(SERVICE service, STATE state) {
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
-    ARRAY_LIST deps = arrayList_clone(pool, state->dependencies);
+    ARRAY_LIST deps = arrayList_clone(service->pool, state->dependencies);
        ARRAY_LIST_ITERATOR i = arrayListIterator_create(deps);
        while (arrayListIterator_hasNext(i)) {
                SERVICE_DEPENDENCY dependency = (SERVICE_DEPENDENCY) 
arrayListIterator_next(i);
@@ -296,9 +281,7 @@ void serviceComponent_stopTrackingOption
 
 void serviceComponent_startTrackingRequired(SERVICE service, void * arg) {
        STATE state = (STATE) arg;
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
-       ARRAY_LIST deps = arrayList_clone(pool, state->dependencies);
+       ARRAY_LIST deps = arrayList_clone(service->pool, state->dependencies);
     ARRAY_LIST_ITERATOR i = arrayListIterator_create(deps);
        while (arrayListIterator_hasNext(i)) {
                SERVICE_DEPENDENCY dependency = (SERVICE_DEPENDENCY) 
arrayListIterator_next(i);
@@ -312,9 +295,7 @@ void serviceComponent_startTrackingRequi
 
 void serviceComponent_stopTrackingRequired(SERVICE service, void * arg) {
        STATE state = (STATE) arg;
-       apr_pool_t *pool = NULL;
-       bundleContext_getMemoryPool(service->context, &pool);
-       ARRAY_LIST deps = arrayList_clone(pool, state->dependencies);
+       ARRAY_LIST deps = arrayList_clone(service->pool, state->dependencies);
     ARRAY_LIST_ITERATOR i = arrayListIterator_create(deps);
        while (arrayListIterator_hasNext(i)) {
                SERVICE_DEPENDENCY dependency = (SERVICE_DEPENDENCY) 
arrayListIterator_next(i);

Modified: incubator/celix/trunk/dependency_manager/service_component_private.h
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/dependency_manager/service_component_private.h?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/dependency_manager/service_component_private.h 
(original)
+++ incubator/celix/trunk/dependency_manager/service_component_private.h Mon 
Dec  5 09:46:30 2011
@@ -36,6 +36,8 @@ typedef struct state * STATE;
 typedef struct executor * EXECUTOR;
 
 struct service {
+       apr_pool_t *pool;
+
        ARRAY_LIST dependencies;
        void (*init)(void * userData);
        void (*start)(void * userData);

Modified: incubator/celix/trunk/examples/whiteboard/tracker_depman/tracker.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/examples/whiteboard/tracker_depman/tracker.c?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/examples/whiteboard/tracker_depman/tracker.c 
(original)
+++ incubator/celix/trunk/examples/whiteboard/tracker_depman/tracker.c Mon Dec  
5 09:46:30 2011
@@ -40,7 +40,9 @@ void * dp_send(void * handle) {
                for (i = 0; i < arrayList_size(data->publishers); i++) {
                        PUBLISHER_SERVICE pub = (PUBLISHER_SERVICE) 
arrayList_get(data->publishers, i);
                        pub->invoke(pub->publisher, "Tracker message");
-                       data->logger->log(data->logger->logger, LOG_INFO, 
"Sending message to publisher");
+                       if (data->logger != NULL) {
+                               data->logger->log(data->logger->logger, 
LOG_INFO, "Sending message to publisher");
+                       }
                }
                sleep(1);
        }

Modified: incubator/celix/trunk/framework/private/include/constants.h
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/include/constants.h?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/include/constants.h (original)
+++ incubator/celix/trunk/framework/private/include/constants.h Mon Dec  5 
09:46:30 2011
@@ -28,6 +28,7 @@
 
 static const char * const OBJECTCLASS = "objectClass";
 static const char * const SERVICE_ID = "service.id";
+static const char * const SERVICE_RANKING = "service.ranking";
 
 static const char * const BUNDLE_ACTIVATOR_CREATE = "bundleActivator_create";
 static const char * const BUNDLE_ACTIVATOR_START = "bundleActivator_start";

Modified: incubator/celix/trunk/framework/private/include/headers.h
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/include/headers.h?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/include/headers.h (original)
+++ incubator/celix/trunk/framework/private/include/headers.h Mon Dec  5 
09:46:30 2011
@@ -147,6 +147,8 @@ struct serviceRegistration {
        SERVICE_REGISTRY registry;
        char * className;
        SERVICE_REFERENCE reference;
+       ARRAY_LIST references;
+       BUNDLE bundle;
        PROPERTIES properties;
        void * svcObj;
        long serviceId;

Modified: incubator/celix/trunk/framework/private/src/bundle_context.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/bundle_context.c?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/bundle_context.c (original)
+++ incubator/celix/trunk/framework/private/src/bundle_context.c Mon Dec  5 
09:46:30 2011
@@ -169,12 +169,10 @@ celix_status_t bundleContext_registerSer
 }
 
 celix_status_t bundleContext_getServiceReferences(BUNDLE_CONTEXT context, 
const char * serviceName, char * filter, ARRAY_LIST *service_references) {
-    ARRAY_LIST references = NULL;
     celix_status_t status = CELIX_SUCCESS;
 
     if (context != NULL && *service_references == NULL) {
-        fw_getServiceReferences(context->framework, &references, 
context->bundle, serviceName, filter);
-        *service_references = references;
+        fw_getServiceReferences(context->framework, service_references, 
context->bundle, serviceName, filter);
     } else {
         status = CELIX_ILLEGAL_ARGUMENT;
     }

Modified: incubator/celix/trunk/framework/private/src/service_registration.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/service_registration.c?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/service_registration.c 
(original)
+++ incubator/celix/trunk/framework/private/src/service_registration.c Mon Dec  
5 09:46:30 2011
@@ -53,6 +53,9 @@ celix_status_t serviceRegistration_creat
     (*registration)->isServiceFactory = isFactory;
     (*registration)->registry = registry;
     (*registration)->className = serviceName;
+    (*registration)->bundle = bundle;
+    (*registration)->references = NULL;
+    //arrayList_create(pool, &(*registration)->references);
 
        if (dictionary == NULL) {
                dictionary = properties_create();

Modified: incubator/celix/trunk/shell/inspect_command.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/shell/inspect_command.c?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/shell/inspect_command.c (original)
+++ incubator/celix/trunk/shell/inspect_command.c Mon Dec  5 09:46:30 2011
@@ -85,7 +85,6 @@ celix_status_t inspectCommand_printExpor
        } else {
                apr_pool_t *pool = NULL;
                bundleContext_getMemoryPool(command->bundleContext, &pool);
-               ARRAY_LIST ids = NULL;
                arrayList_create(pool, &bundles);
                int i;
                for (i = 0; i < arrayList_size(ids); i++) {

Modified: incubator/celix/trunk/target.cmake
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/target.cmake?rev=1210381&r1=1210380&r2=1210381&view=diff
==============================================================================
--- incubator/celix/trunk/target.cmake (original)
+++ incubator/celix/trunk/target.cmake Mon Dec  5 09:46:30 2011
@@ -20,5 +20,5 @@
 #deploy("hello_world" BUNDLES shell shell_tui hello_world celix.mongoose 
log_service log_writer)
 #deploy("deployer" BUNDLES shell shell_tui deployer)
 #deploy("wb" BUNDLES tracker publisherA publisherB shell shell_tui log_service 
log_writer)
-#deploy("wb_dp" BUNDLES tracker_depman publisherA publisherB shell shell_tui 
log_service log_writer)
+deploy("wb_dp" BUNDLES tracker_depman publisherA publisherB shell shell_tui 
log_service log_writer)
 #deploy("echo" BUNDLES echo_server echo_client shell shell_tui)
\ No newline at end of file


Reply via email to