You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2018/05/27 18:52:30 UTC

[22/60] [abbrv] [partial] celix git commit: CELIX-424: Cleans up the directory structure. Moves all libraries to the libs subdir and all bundles to the bundles subdir

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/config_admin/service/private/src/managed_service_tracker.c
----------------------------------------------------------------------
diff --git a/config_admin/service/private/src/managed_service_tracker.c b/config_admin/service/private/src/managed_service_tracker.c
deleted file mode 100644
index a42d565..0000000
--- a/config_admin/service/private/src/managed_service_tracker.c
+++ /dev/null
@@ -1,598 +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.
- */
-/*
- * managed_service_tracker.c
- *
- *  \date       Aug 12, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-#include <stdbool.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-/* celix.config_admin.ManagedServiceTracker */
-#include "managed_service_tracker.h"
-#include "service_tracker_customizer.h"
-
-/* celix.utils */
-#include "hash_map.h"
-/* celix.framework */
-#include "constants.h"
-#include "properties.h"
-#include "utils.h"
-#include "service_reference.h"
-#include "service_registration.h"
-/* celix.framework.Patch*/
-#include "framework_patch.h"
-/* celix.config_admin.public */
-#include "managed_service.h"
-/* celix.config_admin.private */
-#include "configuration_impl.h"
-#include "updated_thread_pool.h"
-
-struct managed_service_tracker {
-
-    bundle_context_pt context;
-
-    configuration_admin_factory_pt configurationAdminfactory;
-    configuration_store_pt configurationStore;
-    updated_thread_pool_pt updatedThreadPool; // according to org.equinox is our "SerializableTaskQueue"
-
-    hash_map_pt managedServices;
-    hash_map_pt managedServicesReferences;
-    celix_thread_mutex_t managedServicesReferencesMutex;
-};
-
-static celix_status_t managedServiceTracker_createHandle(bundle_context_pt context, configuration_admin_factory_pt factory, configuration_store_pt store, managed_service_tracker_pt *tracker);
-static celix_status_t managedServiceTracker_createCustomized(bundle_context_pt context, managed_service_tracker_pt trackerHandle, service_tracker_pt *tracker);
-
-static celix_status_t managedServiceTracker_add(managed_service_tracker_pt tracker, service_reference_pt reference, char * pid, managed_service_service_pt service);
-static celix_status_t managedServiceTracker_remove(managed_service_tracker_pt tracker, service_reference_pt reference, char * pid);
-static celix_status_t managedServiceTracker_trackManagedService(managed_service_tracker_pt tracker, char *pid, service_reference_pt reference, managed_service_service_pt service);
-static celix_status_t managedServiceTracker_untrackManagedService(managed_service_tracker_pt tracker, char *pid, service_reference_pt reference);
-static celix_status_t managedServiceTracker_getManagedService(managed_service_tracker_pt tracker, char *pid, managed_service_service_pt *service);
-static celix_status_t managedServiceTracker_getManagedServiceReference(managed_service_tracker_pt tracker, char *pid, service_reference_pt *reference);
-//static celix_status_t managedServiceTracker_getPidForManagedService(managed_service_service_pt *service, char **pid);
-celix_status_t managedServiceTracker_asynchUpdated(managed_service_tracker_pt trackerHandle, managed_service_service_pt service, properties_pt properties);
-
-static celix_status_t managedServiceTracker_getBundleContext(managed_service_tracker_pt trackerHandle, bundle_context_pt *context);
-
-static celix_status_t managedServiceTracker_lockManagedServicesReferences(managed_service_tracker_pt handle);
-static celix_status_t managedServiceTracker_unlockManagedServicesReferences(managed_service_tracker_pt handle);
-
-/* ========== CONSTRUCTOR ========== */
-
-/* ---------- public ---------- */
-
-celix_status_t managedServiceTracker_create(bundle_context_pt context, configuration_admin_factory_pt factory, configuration_store_pt store, managed_service_tracker_pt *trackerHandle, service_tracker_pt *tracker) {
-
-    celix_status_t status;
-
-    managed_service_tracker_pt managedServiceTrackerHandle;
-    service_tracker_pt managedServiceTrackerCustomized;
-
-    status = managedServiceTracker_createHandle(context, factory, store, &managedServiceTrackerHandle);
-    if (status != CELIX_SUCCESS) {
-        *trackerHandle = NULL;
-        *tracker = NULL;
-        return status;
-    }
-
-    status = managedServiceTracker_createCustomized(context, managedServiceTrackerHandle, &managedServiceTrackerCustomized);
-    if (status != CELIX_SUCCESS) {
-        *trackerHandle = NULL;
-        *tracker = NULL;
-        return status;
-    }
-    *trackerHandle = managedServiceTrackerHandle;
-    *tracker = managedServiceTrackerCustomized;
-
-    printf("[ SUCCESS ]: Tracker - Initialized \n");
-    return CELIX_SUCCESS;
-
-}
-
-/* ---------- private ---------- */
-
-celix_status_t managedServiceTracker_createHandle(bundle_context_pt context, configuration_admin_factory_pt factory, configuration_store_pt store, managed_service_tracker_pt *tracker) {
-
-    celix_status_t status;
-
-    updated_thread_pool_pt updatedThreadPool = NULL;
-    managed_service_tracker_pt this = calloc(1, sizeof(*this));
-
-    if (!this) {
-        printf("[ ERROR ]: TrackerInstance - Not initialized (ENOMEM) \n");
-        *tracker = NULL;
-        return CELIX_ENOMEM;
-    }
-
-    status = updatedThreadPool_create(context, MAX_THREADS, &updatedThreadPool);
-    if (status != CELIX_SUCCESS) {
-        return status;
-    }
-
-    this->context = context;
-
-    this->configurationAdminfactory = factory;
-    this->configurationStore = store;
-    this->updatedThreadPool = updatedThreadPool;
-
-    this->managedServices = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
-    this->managedServicesReferences = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
-
-    celix_status_t mutexStatus = celixThreadMutex_create(&this->managedServicesReferencesMutex, NULL);
-    if (mutexStatus != CELIX_SUCCESS) {
-        printf("[ ERROR ]: TrackerInstance - Not initialized (MUTEX) \n");
-        // TODO destroy threadpool?
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    *tracker = this;
-    return CELIX_SUCCESS;
-
-}
-
-celix_status_t managedServiceTracker_createCustomized(bundle_context_pt context, managed_service_tracker_pt trackerHandle, service_tracker_pt *tracker) {
-    celix_status_t status;
-
-    service_tracker_customizer_pt customizer = NULL;
-    service_tracker_pt managedServiceTracker = NULL;
-
-    status = serviceTrackerCustomizer_create(trackerHandle, managedServiceTracker_addingService, managedServiceTracker_addedService, managedServiceTracker_modifiedService, managedServiceTracker_removedService, &customizer);
-
-    if (status != CELIX_SUCCESS) {
-        printf("[ ERROR ]: TrackerCustomized - Not initialized(ENOMEM) \n");
-        *tracker = NULL;
-        return CELIX_ENOMEM;
-    }
-
-    serviceTracker_create(context, (char *) MANAGED_SERVICE_SERVICE_NAME, customizer, &managedServiceTracker);
-
-    if (status != CELIX_SUCCESS) {
-        printf("[ ERROR ]: TrackerCustomized - Not created \n");
-        *tracker = NULL;
-        return status;
-    }
-
-    *tracker = managedServiceTracker;
-    return CELIX_SUCCESS;
-}
-
-celix_status_t managedServiceTracker_destroy(bundle_context_pt context, managed_service_tracker_pt mgServTr, service_tracker_pt tracker) {
-	updatedThreadPool_destroy(mgServTr->updatedThreadPool);
-	celixThreadMutex_destroy(&mgServTr->managedServicesReferencesMutex);
-	serviceTracker_destroy(tracker);
-
-	hashMap_destroy(mgServTr->managedServices, true, true);
-	hashMap_destroy(mgServTr->managedServicesReferences, true, true);
-
-    free(mgServTr);
-
-	return CELIX_SUCCESS;
-}
-
-
-
-/* ========== IMPLEMENTS CUSTOMIZED TRACKER ========== */
-
-/* ---------- public ---------- */
-
-celix_status_t managedServiceTracker_addingService(void * handle, service_reference_pt reference, void **service) {
-
-
-    celix_status_t status;
-
-    const char* pid = NULL;
-
-    bundle_context_pt context = NULL;
-
-    managed_service_tracker_pt managedServiceTracker_i = handle;	//instance
-    managed_service_service_pt managedService_s = NULL;			//service
-
-    // (1) reference.getPid
-
-    status = serviceReference_getProperty(reference, OSGI_FRAMEWORK_SERVICE_PID, &pid);
-    if (status != CELIX_SUCCESS || pid == NULL) {
-        *service = NULL;
-        printf(" [ ERROR ]: Tracker - PID is NULL \n");
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    // (2) context.getManagedServiceService
-
-    // (2.1) trackerInstance.getBundleContext
-
-    if (managedServiceTracker_getBundleContext(managedServiceTracker_i, &context) != CELIX_SUCCESS) {
-        *service = NULL;
-        printf(" [ ERROR ]: Tracker - NULL bundleContext \n");
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    // (2.2) context.getManagedServiceService
-
-    if (bundleContext_getService(context, reference, (void*) &managedService_s) != CELIX_SUCCESS) {
-        printf("[ ERROR ]: Tracker - AddingService ( BundleContext - getService{PID=%s} ) \n", pid);
-        *service = NULL;
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-    if (managedService_s == NULL) {
-        printf("[ WARNING ]: Tracker - AddingService (none Service{PID=%s}) \n", pid);
-        *service = NULL;
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    /* DEBUG CODE *
-
-    service_registration_pt registration = NULL;
-    serviceReference_getServiceRegistration(reference, &registration);
-    char *serviceName = NULL;
-    serviceRegistration_getServiceName(registration, &serviceName);
-
-    printf("[ DEBUG ]: Tracker - AddingService ( SUCCESS BundleCtxt - getService{Name=%s,PID=%s}  ) \n", serviceName, pid);
-
-    * ENF OF DEBUG CODE */
-
-    // (3) trackerInstance.AddManagedServiceToLocalList
-    configurationStore_lock(managedServiceTracker_i->configurationStore);
-
-    status = managedServiceTracker_add(managedServiceTracker_i, reference, (char*)pid, managedService_s);
-    if (status != CELIX_SUCCESS) {
-        bundleContext_ungetService(context, reference, NULL);
-    }
-    configurationStore_unlock(managedServiceTracker_i->configurationStore);
-
-    if (status != CELIX_SUCCESS) {
-        *service = NULL;
-    } else {
-        *service = &managedService_s;
-    }
-
-    return status;
-
-}
-
-celix_status_t managedServiceTracker_addedService(void * handle, service_reference_pt reference, void * service) {
-    return CELIX_SUCCESS;
-}
-
-celix_status_t managedServiceTracker_modifiedService(void * handle, service_reference_pt reference, void * service) {
-    return CELIX_SUCCESS;
-}
-
-celix_status_t managedServiceTracker_removedService(void * handle, service_reference_pt reference, void * service) {
-    celix_status_t status = CELIX_SUCCESS;
-    const char* pid;
-    managed_service_tracker_pt managedServiceTracker_i = handle;	//instance
-    bundle_context_pt context;
-
-
-    status = serviceReference_getProperty(reference, OSGI_FRAMEWORK_SERVICE_PID, &pid);
-    if (status != CELIX_SUCCESS || pid == NULL){
-	return CELIX_ILLEGAL_ARGUMENT;
-    }
-    if ( managedServiceTracker_getBundleContext(managedServiceTracker_i, &context) != CELIX_SUCCESS ){
-	return CELIX_ILLEGAL_ARGUMENT;
-    }
-    status = managedServiceTracker_remove(managedServiceTracker_i, reference, (char*)pid);
-
-    return status;
-
-}
-
-/* ---------- private ---------- */
-// org.eclipse.equinox.internal.cm.ManagedServiceTracker
-celix_status_t managedServiceTracker_add(managed_service_tracker_pt tracker, service_reference_pt reference, char *pid, managed_service_service_pt service) {
-
-    celix_status_t status;
-
-    bundle_pt bundle = NULL;
-    const char* bundleLocation;
-
-    configuration_pt configuration = NULL;
-    properties_pt properties = NULL;
-
-    configurationStore_findConfiguration(tracker->configurationStore, pid, &configuration);
-
-    if (configuration == NULL) {
-
-        if (managedServiceTracker_trackManagedService(tracker, pid, reference, service) == CELIX_SUCCESS) {
-
-            // TODO : this is new code, it hasn't been tested yet
-
-            if (serviceReference_getBundle(reference, &bundle) != CELIX_SUCCESS) {
-                return CELIX_ILLEGAL_ARGUMENT;
-            }
-
-            if (bundle_getBundleLocation(bundle, &bundleLocation) != CELIX_SUCCESS) {
-                return CELIX_ILLEGAL_ARGUMENT;
-            }
-
-            // (1) creates a new Configuration for the ManagedService
-            if (configurationStore_getConfiguration(tracker->configurationStore, pid, (char*)bundleLocation, &configuration) != CELIX_SUCCESS || configuration == NULL) {
-                return CELIX_ILLEGAL_ARGUMENT;
-            }
-
-            // (2) bind the Configuration with the ManagedService
-            bool dummy;
-            if ((configuration_bind(configuration->handle, bundle, &dummy) != CELIX_SUCCESS)) {
-                return CELIX_ILLEGAL_ARGUMENT;
-            }
-
-            // (3) the new Configuration is persisted and visible for other ConfigAdmin instances
-            if (configurationStore_saveConfiguration(tracker->configurationStore, pid, configuration) != CELIX_SUCCESS) {
-                return CELIX_ILLEGAL_STATE;
-            }
-
-            // End of new code
-
-            // TODO: It must be considered in case of fail if untrack the ManagedService
-
-            return managedServiceTracker_asynchUpdated(tracker, service, NULL);
-
-        } else {
-            return CELIX_ILLEGAL_ARGUMENT; // the service was already tracked
-        }
-
-    } else {
-
-        configuration_lock(configuration->handle);
-
-        if (managedServiceTracker_trackManagedService(tracker, pid, reference, service) == CELIX_SUCCESS) {
-
-            if (serviceReference_getBundle(reference, &bundle) != CELIX_SUCCESS) {
-                configuration_unlock(configuration->handle);
-                printf("[ERROR ]: Tracker - Add (Service{PID=%s} Reference - getBundle NULL)", pid);
-                return CELIX_ILLEGAL_ARGUMENT;
-            }
-
-            // TODO configuration.isDeleted ? - with only using one calling bundle OK
-
-            bool isBind;
-            if ((configuration_bind(configuration->handle, bundle, &isBind) == CELIX_SUCCESS) && (isBind == true)) { // config.bind(bundle)
-
-                if (configuration_getProperties(configuration->handle, &properties) != CELIX_SUCCESS) {
-                    configuration_unlock(configuration->handle);
-                    return CELIX_ILLEGAL_ARGUMENT;
-                }
-
-                if (configurationAdminFactory_modifyConfiguration(tracker->configurationAdminfactory, reference, properties) != CELIX_SUCCESS) {
-                    configuration_unlock(configuration->handle);
-                    return CELIX_ILLEGAL_ARGUMENT;
-                }
-
-                status = managedServiceTracker_asynchUpdated(tracker, service, properties);
-
-                configuration_unlock(configuration->handle);
-
-                return status;
-
-            } else {
-                configuration_unlock(configuration->handle);
-                return CELIX_ILLEGAL_STATE;
-            }
-
-        } else {
-            configuration_unlock(configuration->handle);
-            return CELIX_ILLEGAL_ARGUMENT; // the service was already tracked
-        }
-    }
-}
-
-celix_status_t managedServiceTracker_remove(managed_service_tracker_pt tracker, service_reference_pt reference, char * pid){
-    configuration_pt configuration = NULL;
-    bundle_pt bundle = NULL;
-
-    configurationStore_findConfiguration(tracker->configurationStore, pid, &configuration);
-    if (configuration != NULL) {
-        if (serviceReference_getBundle(reference, &bundle) == CELIX_SUCCESS) {
-			configuration_unbind(configuration->handle, bundle);
-		}	
-	}
-	return managedServiceTracker_untrackManagedService(tracker, pid, reference);
-}
-
-celix_status_t managedServiceTracker_trackManagedService(managed_service_tracker_pt tracker, char *pid, service_reference_pt reference, managed_service_service_pt service) {
-
-    managedServiceTracker_lockManagedServicesReferences(tracker);
-
-    if (hashMap_containsKey(tracker->managedServicesReferences, pid)) {
-        printf("[ WARNING ]: Tracker - Track ( Service{PID=%s} already registered ) ", pid);
-        managedServiceTracker_unlockManagedServicesReferences(tracker);
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    hashMap_put(tracker->managedServicesReferences, pid, reference);
-    hashMap_put(tracker->managedServices, pid, service);
-
-    managedServiceTracker_unlockManagedServicesReferences(tracker);
-
-    return CELIX_SUCCESS;
-}
-
-celix_status_t managedServiceTracker_untrackManagedService(managed_service_tracker_pt tracker, char *pid, service_reference_pt reference){
-    managedServiceTracker_lockManagedServicesReferences(tracker);
-
-    if ( hashMap_containsKey(tracker->managedServicesReferences, pid) ){
-	hashMap_remove(tracker->managedServicesReferences, pid);
-	hashMap_remove(tracker->managedServices, pid);
-    }
-    managedServiceTracker_unlockManagedServicesReferences(tracker);
-    return CELIX_SUCCESS;
-
-}
-
-celix_status_t managedServiceTracker_getManagedService(managed_service_tracker_pt tracker, char *pid, managed_service_service_pt *service) {
-
-    celix_status_t status;
-    managed_service_service_pt serv = NULL;
-
-    managedServiceTracker_lockManagedServicesReferences(tracker);
-
-    serv = hashMap_get(tracker->managedServices, pid);
-    if (serv == NULL) {
-        status = CELIX_ILLEGAL_ARGUMENT;
-    } else {
-        status = CELIX_SUCCESS;
-    }
-
-    managedServiceTracker_unlockManagedServicesReferences(tracker);
-
-    *service = serv;
-    return status;
-}
-
-celix_status_t managedServiceTracker_getManagedServiceReference(managed_service_tracker_pt tracker, char *pid, service_reference_pt *reference) {
-
-    celix_status_t status;
-    service_reference_pt ref = NULL;
-
-    managedServiceTracker_lockManagedServicesReferences(tracker);
-
-    ref = hashMap_get(tracker->managedServicesReferences, pid);
-    if (ref == NULL) {
-        status = CELIX_ILLEGAL_ARGUMENT;
-    } else {
-        status = CELIX_SUCCESS;
-    }
-
-    managedServiceTracker_unlockManagedServicesReferences(tracker);
-
-    *reference = ref;
-    return status;
-}
-
-/* TODO
- celix_status_t managedServiceTracker_getPidForManagedService(managed_service_service_pt *service, char **pid){
- return CELIX_SUCCESS;
- }
- */
-
-celix_status_t managedServiceTracker_asynchUpdated(managed_service_tracker_pt trackerHandle, managed_service_service_pt service, properties_pt properties) {
-
-    return updatedThreadPool_push(trackerHandle->updatedThreadPool, service, properties);
-
-}
-
-/* ========== IMPLEMENTENTATION  ========== */
-
-/* ---------- public ---------- */
-
-celix_status_t managedServiceTracker_notifyDeleted(managed_service_tracker_pt tracker, configuration_pt configuration) {
-    return CELIX_SUCCESS;
-}
-
-celix_status_t managedServiceTracker_notifyUpdated(managed_service_tracker_pt tracker, configuration_pt configuration) {
-
-
-    char *pid;
-
-    service_reference_pt reference = NULL;
-    bundle_pt bundle = NULL;
-    properties_pt properties = NULL;
-
-    managed_service_service_pt service = NULL;
-
-    // (1) config.checkLocked
-    if (configuration_checkLocked(configuration->handle) != CELIX_SUCCESS) { //TODO not yet implemented
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    // (2) config.getPid
-    if (configuration_getPid(configuration->handle, &pid) != CELIX_SUCCESS) {
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    // (3) reference = getManagedServiceReference(pid)
-    if (managedServiceTracker_getManagedServiceReference(tracker, pid, &reference) != CELIX_SUCCESS || reference == NULL) {
-        printf("[ ERROR ]: Tracker - Notify (NULL Reference Service{PID=%s}) \n", pid);
-        return CELIX_ILLEGAL_ARGUMENT; // Eclipse ignores, but according to Specs, callback is delayed
-    }
-
-    //  (4.1) reference.getBundle
-    if (serviceReference_getBundle(reference, &bundle) != CELIX_SUCCESS || bundle == NULL) {
-        printf("[ ERROR ]: Tracker - Notify (NULL Bundle Service{PID=%s}) \n", pid);
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    //	(4.2) config.bind(reference.getBundle)
-    bool isBind;
-    if (configuration_bind(configuration->handle, bundle, &isBind) != CELIX_SUCCESS || isBind == false) {
-        printf("[ ERROR ]: Tracker - Notify (Service{PID=%s} Permission Error) \n", pid);
-        return CELIX_ILLEGAL_STATE;
-    }
-
-    // (5) if (reference != null && config.bind(reference.getBundle()))
-
-    // (5.1) properties = config.getProperties
-    if (configuration_getProperties(configuration->handle, &properties) != CELIX_SUCCESS) {
-        printf("[ ERROR ]: Tracker - Notify (Service{PID=%s} Wrong Properties) \n", pid);
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    // (5.2) modifyConfiguration
-    if (configurationAdminFactory_modifyConfiguration(tracker->configurationAdminfactory, reference, properties) != CELIX_SUCCESS) {
-        return CELIX_ILLEGAL_ARGUMENT; //TODO no yet implemented modifyConfiguration
-    }
-
-    // (5.3) service = getManagedService(pid)
-    if (managedServiceTracker_getManagedService(tracker, pid, &service) != CELIX_SUCCESS) {
-        printf("[ ERROR ]: Tracker - Notify (NULL Service{PID=%s}) \n", pid);
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-
-    // (5.4) asynchUpdate(service,properties)
-    if ((properties == NULL) || (properties != NULL && hashMap_size(properties) == 0)) {
-        return managedServiceTracker_asynchUpdated(tracker, service, NULL);
-    } else {
-        return managedServiceTracker_asynchUpdated(tracker, service, properties);
-    }
-    return CELIX_ILLEGAL_ARGUMENT;
-}
-
-/* ---------- private ---------- */
-
-celix_status_t managedServiceTracker_getBundleContext(managed_service_tracker_pt trackerHandle, bundle_context_pt *context) {
-
-    if (trackerHandle->context != NULL) {
-        *context = trackerHandle->context;
-    } else {
-        printf("[ ERROR ]: Tracker - getBundleContext (NULL context) \n");
-        *context = NULL;
-        return CELIX_ILLEGAL_ARGUMENT;
-    }
-    return CELIX_SUCCESS;
-}
-
-celix_status_t managedServiceTracker_lockManagedServicesReferences(managed_service_tracker_pt handle) {
-
-    celixThreadMutex_lock(&handle->managedServicesReferencesMutex);
-    return CELIX_SUCCESS;
-
-}
-
-celix_status_t managedServiceTracker_unlockManagedServicesReferences(managed_service_tracker_pt handle) {
-
-    celixThreadMutex_unlock(&handle->managedServicesReferencesMutex);
-    return CELIX_SUCCESS;
-
-}

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/config_admin/service/private/src/updated_thread_pool.c
----------------------------------------------------------------------
diff --git a/config_admin/service/private/src/updated_thread_pool.c b/config_admin/service/private/src/updated_thread_pool.c
deleted file mode 100644
index 86220db..0000000
--- a/config_admin/service/private/src/updated_thread_pool.c
+++ /dev/null
@@ -1,146 +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.
- */
-/*
- * updated_thread_pool.c
- *
- *  \date       Aug 12, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-
-#include <stdbool.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-/* celix.config_admin.UpdatedThreadPool */
-#include "thpool.h"
-#include "updated_thread_pool.h"
-
-
-
-struct updated_thread_pool{
-
-	bundle_context_pt 	context;
-
-	int maxTreads;
-
-	//	apr_thread_mutex_t *mutex;
-	threadpool threadPool;	//protected by mutex
-
-};
-
-typedef struct data_callback *data_callback_t;
-
-struct data_callback{
-
-	managed_service_service_pt managedServiceService;
-	properties_pt properties;
-
-};
-
-
-static void *updateThreadPool_updatedCallback(void *data);
-static celix_status_t updatedThreadPool_wrapDataCallback(managed_service_service_pt service, properties_pt properties, data_callback_t *data);
-
-
-/* ========== CONSTRUCTOR ========== */
-
-/* ---------- public ---------- */
-
-celix_status_t updatedThreadPool_create(bundle_context_pt context, int maxThreads, updated_thread_pool_pt *updatedThreadPool){
-
-	*updatedThreadPool = calloc(1, sizeof(**updatedThreadPool));
-	if (!*updatedThreadPool){
-		printf("[ ERROR ]: UpdatedThreadPool - Not initialized (ENOMEM) \n");
-		return CELIX_ENOMEM;
-	}
-
-	(*updatedThreadPool)->threadPool=thpool_init(maxThreads);
-//	if ( apr_thread_pool_create(&(*updatedThreadPool)->threadPool, INIT_THREADS, maxTreads, pool) != APR_SUCCESS ){
-	if ((*updatedThreadPool)->threadPool == NULL) {
-		printf("[ ERROR ]: UpdatedThreadPool - Instance not created \n");
-		return CELIX_ENOMEM;
-	}
-
-	(*updatedThreadPool)->context = context;
-
-	printf("[ SUCCESS ]: UpdatedThreadPool - initialized \n");
-	return CELIX_SUCCESS;
-
-}
-
-celix_status_t updatedThreadPool_destroy(updated_thread_pool_pt pool) {
-	thpool_destroy(pool->threadPool);
-	free(pool);
-	return CELIX_SUCCESS;
-}
-/* ========== IMPLEMENTATION ========== */
-
-/* ---------- public ---------- */
-
-celix_status_t updatedThreadPool_push(updated_thread_pool_pt updatedThreadPool, managed_service_service_pt service, properties_pt properties){
-
-	data_callback_t data = NULL;
-
-	if ( updatedThreadPool_wrapDataCallback(service, properties, &data) != CELIX_SUCCESS ){
-		return CELIX_ILLEGAL_ARGUMENT;
-	}
-
-	if (thpool_add_work(updatedThreadPool->threadPool, updateThreadPool_updatedCallback, data) != 0) {
-		printf("[ ERROR ]: UpdatedThreadPool - add_work \n ");
-		return CELIX_ILLEGAL_STATE;
-	}
-
-	return CELIX_SUCCESS;
-}
-
-/* ---------- private ---------- */
-
-void *updateThreadPool_updatedCallback(void *data) {
-
-	data_callback_t params = data;
-
-	managed_service_service_pt managedServiceService = params->managedServiceService;
-	properties_pt properties = params->properties;
-
-	(*managedServiceService->updated)(managedServiceService->managedService, properties);
-
-	free(data);
-
-	return NULL;
-
-}
-
-celix_status_t updatedThreadPool_wrapDataCallback(managed_service_service_pt service, properties_pt properties, data_callback_t *data){
-
-	*data = calloc(1, sizeof(**data));
-
-	if (!*data){
-		printf("[ ERROR ]: UpdatedThreadPool - WrapDataCallback (Data not initialized) \n");
-		return CELIX_ENOMEM;
-	}
-
-	(*data)->managedServiceService = service;
-	(*data)->properties = properties;
-
-	return CELIX_SUCCESS;
-}
-

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/config_admin/service/public/include/configuration.h
----------------------------------------------------------------------
diff --git a/config_admin/service/public/include/configuration.h b/config_admin/service/public/include/configuration.h
deleted file mode 100644
index 74bf5b1..0000000
--- a/config_admin/service/public/include/configuration.h
+++ /dev/null
@@ -1,80 +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.
- */
-/*
- * configuration.h
- *
- *  \date       Aug 12, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-
-#ifndef CONFIGURATION_H_
-#define CONFIGURATION_H_
-
-
-#include <stdbool.h>
-/* celix.framework */
-#include "celix_errno.h"
-#include "properties.h"
-
-
-// Note: the term interface is used because configuration is not a service, it is not
-//       registered in the service registry but it is owned by the config_admin
-struct configuration
-{
-	void 	*handle;	// pointer to configuration datastore
-	/* METHODS */
-	celix_status_t (*configuration_delete)(void *handle);
-
-	celix_status_t (*configuration_equals)(void *thisConfiguration, void *otherConfiguration, bool *equals);
-
-	celix_status_t (*configuration_getBundleLocation)(void *handle, char **bundleLocation);
-	celix_status_t (*configuration_getFactoryPid)(void *handle, char **factoryPid);
-	celix_status_t (*configuration_getPid)(void *handle, char **pid);
-	celix_status_t (*configuration_getProperties)(void *handle, properties_pt *properties);
-
-	celix_status_t (*configuration_hashCode)(void *handle, int *hashCode);
-
-	celix_status_t (*configuration_setBundleLocation)(void *handle, char *bundleLocation);
-
-	celix_status_t (*configuration_update)(void *handle, properties_pt properties);
-
-};
-
-typedef struct configuration *configuration_pt;
-
-/* METHODS
-celix_status_t configuration_delete(configuration_pt configuration);
-
-celix_status_t configuration_equals(configuration_pt thisConfiguration, configuration_pt otherConfiguration, bool *equals);
-
-celix_status_t configuration_getBundleLocation(configuration_pt configuration, char **bundleLocation);
-celix_status_t configuration_getFactoryPid(configuration_pt configuration, char **factoryPid);
-celix_status_t configuration_getPid(configuration_pt configuration, char **pid);
-celix_status_t configuration_getProperties(configuration_pt configuration, properties_pt *properties);
-
-celix_status_t configuration_hashCode(configuration_pt configuration, int *hashCode);
-
-celix_status_t configuration_setBundleLocation(configuration_pt configuration, char *bundleLocation);
-
-celix_status_t configuration_update(configuration_pt configuration, properties_pt properties);
-*/
-
-#endif /* CONFIGURATION_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/config_admin/service/public/include/configuration_admin.h
----------------------------------------------------------------------
diff --git a/config_admin/service/public/include/configuration_admin.h b/config_admin/service/public/include/configuration_admin.h
deleted file mode 100644
index 0a8983c..0000000
--- a/config_admin/service/public/include/configuration_admin.h
+++ /dev/null
@@ -1,64 +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.
- */
-/*
- * configuration_admin.h
- *
- *  \date       Aug 12, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-
-#ifndef CONFIGURATION_ADMIN_H_
-#define CONFIGURATION_ADMIN_H_
-
-
-/* celix.utils.public.include*/
-#include "array_list.h"
-/* celix.framework.public.include */
-#include "celix_errno.h"
-/* celix.config_admin.public.include */
-#include "configuration.h"
-
-
-/* Name of the class */
-#define CONFIGURATION_ADMIN_SERVICE_NAME "org.osgi.service.cm.ConfigurationAdmin"
-/* Configuration properties*/
-#define SERVICE_BUNDLELOCATION "service.bundleLocation"
-#define SERVICE_FACTORYPID "service.factoryPid"
-
-
-typedef struct configuration_admin *configuration_admin_pt;
-typedef struct configuration_admin_service *configuration_admin_service_pt;
-
-
-struct configuration_admin_service {
-
-	/* INSTANCE */
-	configuration_admin_pt configAdmin;
-
-	/* METHODS */
-	celix_status_t (*createFactoryConfiguration)(configuration_admin_pt configAdmin, char *factoryPid, configuration_pt *configuration);
-	celix_status_t (*createFactoryConfiguration2)(configuration_admin_pt configAdmin, char *factoryPid, char *location, configuration_pt *configuration);
-	celix_status_t (*getConfiguration)(configuration_admin_pt configAdmin, char *pid, configuration_pt *configuration);
-	celix_status_t (*getConfiguration2)(configuration_admin_pt configAdmin, char *pid, char *location, configuration_pt *configuration);
-	celix_status_t (*listConfigurations)(configuration_admin_pt configAdmin, char *filter, array_list_pt *configurations);
-};
-
-#endif /* CONFIGURATION_ADMIN_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/config_admin/service/public/include/configuration_event.h
----------------------------------------------------------------------
diff --git a/config_admin/service/public/include/configuration_event.h b/config_admin/service/public/include/configuration_event.h
deleted file mode 100644
index 3fbae52..0000000
--- a/config_admin/service/public/include/configuration_event.h
+++ /dev/null
@@ -1,57 +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.
- */
-/*
- * configuration_event.h
- *
- *  \date       Aug 12, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-
-#ifndef CONFIGURATION_EVENT_H_
-#define CONFIGURATION_EVENT_H_
-
-
-/* celix.framework.public.include */
-#include "celix_errno.h"
-#include "service_reference.h"
-
-
-#define CONFIGURATION_EVENT_CM_DELETED 2
-#define CONFIGURATION_EVENT_CM_LOCATION_CHANGED 3
-#define CONFIGURATION_EVENT_CM_UPDATED 1
-
-
-typedef struct configuration_event *configuration_event_t;
-
-
-/* METHODS */
-celix_status_t configurationEvent_create(
-		service_reference_pt referenceConfigAdmin,
-		int type, char* factoryPid, char *pid,
-		configuration_event_t *event);
-
-celix_status_t configurationEvent_getFactoryPid(configuration_event_t event, char **factoryPid);
-celix_status_t configurationEvent_getPid(configuration_event_t event, char **pid);
-celix_status_t configurationEvent_getReference(configuration_event_t event, service_reference_pt *referenceConfigAdmin);
-celix_status_t configurationEvent_getType(configuration_event_t event, int *type);
-
-
-#endif /* CONFIGURATION_EVENT_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/config_admin/service/public/include/configuration_listener.h
----------------------------------------------------------------------
diff --git a/config_admin/service/public/include/configuration_listener.h b/config_admin/service/public/include/configuration_listener.h
deleted file mode 100644
index a25a70d..0000000
--- a/config_admin/service/public/include/configuration_listener.h
+++ /dev/null
@@ -1,57 +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.
- */
-/*
- * configuration_listener.h
- *
- *  \date       Aug 12, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-
-#ifndef CONFIGURATION_LISTENER_H_
-#define CONFIGURATION_LISTENER_H_
-
-/* celix.utils.public.include*/
-#include "array_list.h"
-/* celix.framework.public.include */
-#include "celix_errno.h"
-/* celix.config_admin.public.include */
-#include "configuration_event.h"
-
-/* Name of the class */
-#define CONFIGURATION_LISTENER_SERVICE_NAME "org.osgi.service.cm.ConfigurationListener"
-
-
-typedef struct configuration_listener *configuration_listener_t;
-typedef struct configuration_listener_service *configuration_listener_service_t;
-
-
-struct configuration_listener_service {
-
-	/* INSTANCE */
-	configuration_listener_t configListener;
-
-	/* METHOD */
-	celix_status_t (*configurationEvent)(configuration_listener_t configListener, configuration_event_t event);
-
-};
-
-
-#endif /* CONFIGURATION_LISTENER_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/config_admin/service/public/include/configuration_plugin.h
----------------------------------------------------------------------
diff --git a/config_admin/service/public/include/configuration_plugin.h b/config_admin/service/public/include/configuration_plugin.h
deleted file mode 100644
index d523326..0000000
--- a/config_admin/service/public/include/configuration_plugin.h
+++ /dev/null
@@ -1,62 +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.
- */
-/*
- * configuration_plugin.h
- *
- *  \date       Aug 12, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-
-#ifndef CONFIGURATION_PLUGIN_H_
-#define CONFIGURATION_PLUGIN_H_
-
-
-/* celix.utils.public.include*/
-#include "hash_map.h"
-/* celix.framework.public.include */
-#include "celix_errno.h"
-#include "service_reference.h"
-
-
-/* Name of the class */
-#define CONFIGURATION_PLUGIN_SERVICE_NAME "org.osgi.service.cm.ConfigurationPlugin"
-/* Service properties*/
-#define CONFIGURATION_PLUGIN_CM_RANKING "service.cmRanking"
-#define CONFIGURATION_PLUGIN_CM_TARGET "cm.target"
-
-typedef struct configuration_plugin *configuration_plugin_t;
-typedef struct configuration_plugin_service *configuration_plugin_service_t;
-
-
-struct configuration_plugin_service {
-
-	/* INSTANCE */
-	configuration_plugin_t configPlugin;
-
-	/* METHOD */
-	// reference to Managed Service or Managed Service Factory
-	celix_status_t (*modifyConfiguration)(configuration_plugin_t configPlugin, service_reference_pt reference, hash_map_pt properties);
-
-};
-
-
-
-#endif /* CONFIGURATION_PLUGIN_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/config_admin/service/public/include/managed_service.h
----------------------------------------------------------------------
diff --git a/config_admin/service/public/include/managed_service.h b/config_admin/service/public/include/managed_service.h
deleted file mode 100644
index 1067760..0000000
--- a/config_admin/service/public/include/managed_service.h
+++ /dev/null
@@ -1,54 +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.
- */
-/*
- * managed_service.h
- *
- *  \date       Aug 12, 2013
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-#ifndef MANAGED_SERVICE_H_
-#define MANAGED_SERVICE_H_
-
-
-/* celix.framework */
-#include "bundle_context.h"
-#include "celix_errno.h"
-#include "properties.h"
-
-/* Name of the class */
-#define MANAGED_SERVICE_SERVICE_NAME "org.osgi.service.cm.ManagedService"
-
-
-typedef struct managed_service *managed_service_pt;
-typedef struct managed_service_service *managed_service_service_pt;
-
-struct managed_service_service{
-
-	managed_service_pt managedService;
-	/* METHODS */
-	celix_status_t (*updated)(managed_service_pt managedService, properties_pt properties);
-
-};
-
-celix_status_t managedService_create(bundle_context_pt context, managed_service_service_pt *service);
-celix_status_t managedService_destroy(managed_service_service_pt service);
-
-#endif /* MANAGED_SERVICE_H_ */

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/dependency_manager/CMakeLists.txt b/dependency_manager/CMakeLists.txt
deleted file mode 100644
index 52051ab..0000000
--- a/dependency_manager/CMakeLists.txt
+++ /dev/null
@@ -1,51 +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.
-
-#dummy libaries to ensure backward compatability with projects using the dependency manager libs/shell
-add_library(dependency_manager_static STATIC src/dm_activator.c)
-target_include_directories(dependency_manager_static PUBLIC
-        $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
-        $<INSTALL_INTERFACE:include/celix/dependency_manager>
-)
-if (APPLE)
-    target_link_libraries(dependency_manager_static Celix::framework "-undefined dynamic_lookup")
-else()
-    target_link_libraries(dependency_manager_static Celix::framework)
-endif()
-
-add_library(dependency_manager_so SHARED src/dm_activator.c)
-target_include_directories(dependency_manager_so PUBLIC
-        $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
-        $<INSTALL_INTERFACE:include/celix/dependency_manager>
-)
-if (APPLE)
-    target_link_libraries(dependency_manager_so Celix::framework "-undefined dynamic_lookup")
-else()
-    target_link_libraries(dependency_manager_so Celix::framework)
-endif()
-
-#now part of the the shell bundle
-add_library(dm_shell INTERFACE)
-
-#Setup target aliases to match external usage
-add_library(Celix::dm_shell ALIAS dm_shell)
-add_library(Celix::dependency_manager_static ALIAS dependency_manager_static)
-add_library(Celix::dependency_manager_so ALIAS dependency_manager_so)
-
-#install dummy libs
-install(TARGETS dependency_manager_static dependency_manager_so dm_shell EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework)
-

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager/api/dm_activator.h
----------------------------------------------------------------------
diff --git a/dependency_manager/api/dm_activator.h b/dependency_manager/api/dm_activator.h
deleted file mode 100644
index ffbf6b2..0000000
--- a/dependency_manager/api/dm_activator.h
+++ /dev/null
@@ -1,63 +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.
- */
-
-/*
- * dm_activator_base.h
- *
- *  \date       26 Jul 2014
- *  \author     <a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright  Apache License, Version 2.0
- */
-
-
-#ifndef DM_ACTIVATOR_BASE_H_
-#define DM_ACTIVATOR_BASE_H_
-
-#include "celix_bundle_context.h"
-#include "dm_dependency_manager.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Should be implemented by a bundle specific DM activator.
- * Should allocate and initialize a bundle specific activator struct.
- */
-celix_status_t dm_create(celix_bundle_context_t *ctx, void ** userData);
-
-/**
- * Should be implemented by a bundle specific DM activator.
- * Will be called after the dm_create function.
- * Can be used to specify with use of the provided dependency manager the bundle specific components.
- */
-celix_status_t dm_init(void * userData, celix_bundle_context_t *ctx, dm_dependency_manager_t *mng);
-
-/**
- * Should be implemented by a bundle specific DM activator.
- * Should deinitialize and deallocate the undle specific activator struct.
- */
-celix_status_t dm_destroy(void * userData, celix_bundle_context_t *ctx, dm_dependency_manager_t *mng);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* DM_ACTIVATOR_BASE_H_ */
-

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager/doc-images/statediagram.png
----------------------------------------------------------------------
diff --git a/dependency_manager/doc-images/statediagram.png b/dependency_manager/doc-images/statediagram.png
deleted file mode 100644
index 4349633..0000000
Binary files a/dependency_manager/doc-images/statediagram.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager/readme.md
----------------------------------------------------------------------
diff --git a/dependency_manager/readme.md b/dependency_manager/readme.md
deleted file mode 100644
index 8effe63..0000000
--- a/dependency_manager/readme.md
+++ /dev/null
@@ -1,153 +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.
--->
-
-# Apache Celix Dependency Manager
-
-## Introduction
-
-The Dependency Manager contains a static library which can be used to manage (dynamic) services on a higher abstraction level in a declarative style. 
-The Apache Celix Dependency Manager is inspired by the [Apache Felix Dependency Manager](http://felix.apache.org/documentation/subprojects/apache-felix-dependency-manager.html).
-
-## Components
-
-Components are the main building blocks for OSGi applications. They can publish services, and/or they can have dependencies. These dependencies will influence their life cycle as component will only be activated when all required dependencies are available.
-
-Within Apache Celix a component is expected to have a set of functions where the first argument is a handle to the component (e.g. self/this). How this is achieved is up the the user, for some examples how this can be done see the example in the Apache Celix Project. 
-
-The Dependency Manager, as part of a bundle, shares the generic bundle life cycle explained in the OSGi specification. 
-Each component you define gets its own life cycle. The component life cycle is depicted in the state diagram below.
-
-![Component Life Cycle](doc-images/statediagram.png)
-
-Changes in the state of the component will trigger the following life cycle callback functions:
-
-    `init`,
-    `start`,
-    `stop` and
-    `deinit`.
-
-The callback functions can be specified by using the component_setCallbacks.
-
-## DM Parts
-
-The Dependency Manager consist out of four main parts: `DM (Dependency Manager) Activator`, `Dependency Manager`, `DM Component` and `DM Service Dependency`.
-
-### DM Activator
-
-The `DM Activator` implements a "normal" Celix bundle activator and depends on four functions which needs to be implemented by the user of the Depedency Manager:
- - `dm_create` : Should be used to allocated and initialize a dm activator structure. If needed this structure can be used to store object during the lifecycle of the bundle.
- - `dm_init` : Should be used to interact with the `Dependency Manager`. Here a user can components, service dependencies and provided services. 
- - `dm_destroy` : Should be used to deinitialize and deallocate objects created in the `dm_create` function.
-
-
-### Dependency Manager
-
-The `Dependency Manager` act as an entry point to add or remove DM Components. The `Dependency Manager` is provided to the `dm_init` functoin.
-
-### DM Component
-
-The `DM Component` manages the life cycle of a component. For example, when all required service dependencies are available the `DM Component` will call the `start` specified callback function of the component. 
-
-The `component_setImplementation` function can be used to specify which component handle to use. 
-The `component_addInterface` can be used to specify one additional service provided by the component. 
-The `component_addServiceDependency` can be used to specify one additional service dependency.
-
-### Dm Service Dependency 
-
-The `DM Service Dependency` can be used to specify service dependencies for a component. i
-
-When these dependencies are set to required the `DM Component` will ensure that components will only be started when all required dependencies are available and stop the component if any of the required dependencies are removed. 
-This feature should prevent a lot of boiler plating code compared to using a service tracker or services references directly. 
-
-A service dependency update strategy can also be specified. Default this strategy is set to `DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND` this strategy will stop and start (suspend) a component when any of the specified service dependencies change (are removed, added or modified). 
-When correctly used this strategy removes the need for locking services during updates/invocation. See the dependency manager example for more details.
-
-The `serviceDependency_setCallbacks` function can be used to specify the function callback used when services are added, set, removed or modified. 
-The `serviceDependency_setRequired` function can be used to specify if a service dependency is required.
-The `serviceDependency_setStrategy` function can be used to specify a service dependency update strategy (suspend or locking).
-
-### Snippets
-
-#### DM Bundle Activator
-
-The next snippet shows a dm bundle activator and how to add components to the dependency manager.
-```C
-
-//exmpl_activator.c
-#include <dm_activator.h>
-#include <stdlib.h>
-
-struct dm_exmpl_activator {
-    exmpl_t* exmpl;
-};
-
-celix_status_t dm_create(bundle_context_pt context, void **userData) {                                                                                                                                             
-    *userData = calloc(1, sizeof(struct dm_exmpl_activator));
-    return *userData != NULL ? CELIX_SUCCESS : CELIX_ENOMEM;
-}
-
-celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) {
-    celix_status_t status = CELIX_SUCCESS;
-    struct dm_exmpl_activator *act = (struct dm_exmpl_activator*)userData;
-
-    act->exmpl = exmpl_create();
-    if (act->exmpl != NULL) {
-        dm_component_pt cmp;
-        component_create(context, "Example Component", &cmp);
-        component_setImplementation(cmp, act->exmpl);
-
-        dependencyManager_add(manager, cmp);
-    } else {
-        status = CELIX_ENOMEM;
-    }
-
-    return status;
-}
-
-celix_status_t dm_destroy(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) {
-    celix_status_t status = CELIX_SUCCESS;
-    struct dm_exmpl_activator *act = (struct dm_exmpl_activator*)userData;
-
-    if (act->exmpl != NULL) {
-        exmpl_destroy(act->exmpl);
-    }
-    free(act);
-
-    return CELIX_SUCCESS;
-}  
-```
-
-### References
-
-For more information examples please see
-
-- [The Dependency Manager API](public/include): The dependency manager header files
-- [Getting Started: Using Service with C](../documents/getting_started/using_services_with_c.md): A introduction how to work with services using the dependency manager
-- [Dm example](../examples/dm_example): A DM example.
-
-## Dependency Manager Shell support
-
-There is support for retrieving information of the dm components with
-use of the `dm` command. This command will print all known dm component,
-their state, provided interfaces and required interfaces.
-
-
-## Using info
-
-If the Celix Dependency Manager is installed, 'find_package(Celix)' will set:
- - The `Celix::dm_shell` bundle target
- - The `Celix::dependency_manger_static` library target

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager/src/dm_activator.c
----------------------------------------------------------------------
diff --git a/dependency_manager/src/dm_activator.c b/dependency_manager/src/dm_activator.c
deleted file mode 100644
index 8a99803..0000000
--- a/dependency_manager/src/dm_activator.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0 
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "dm_activator.h"
-
-#include <stdlib.h>
-
-
-celix_status_t bundleActivator_create(celix_bundle_context_t *ctx, void **userData) {
-    return dm_create(ctx, userData);
-}
-
-celix_status_t bundleActivator_start(void *userData, celix_bundle_context_t *ctx) {
-    dm_dependency_manager_t *mng = celix_bundleContext_getDependencyManager(ctx);
-    return dm_init(userData, ctx, mng);
-}
-
-celix_status_t bundleActivator_stop(void * userData __attribute__((unused)), celix_bundle_context_t *ctx __attribute__((unused))) {
-    return CELIX_SUCCESS; //nothing to do (no dm_deinit)
-}
-
-celix_status_t bundleActivator_destroy(void * userData, celix_bundle_context_t *ctx __attribute__((unused))) {
-    dm_dependency_manager_t *mng = celix_bundleContext_getDependencyManager(ctx);
-    return dm_destroy(userData, ctx, mng);
-}

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager/todo.md
----------------------------------------------------------------------
diff --git a/dependency_manager/todo.md b/dependency_manager/todo.md
deleted file mode 100644
index d424aef..0000000
--- a/dependency_manager/todo.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# TODO integrate dep man into framework
-
-- Move documentation
-- Move dummy targets
-- Depecrate the Celix::dm_shell, Celix::dependency_manager_static
-and Celix::dependency_manager_so targets. (how?)
-- Eventually remove the deprecated dm targets

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager_cxx/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/dependency_manager_cxx/CMakeLists.txt b/dependency_manager_cxx/CMakeLists.txt
deleted file mode 100644
index 886b06d..0000000
--- a/dependency_manager_cxx/CMakeLists.txt
+++ /dev/null
@@ -1,35 +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.
-
-add_library(dependency_manager_cxx_static STATIC
-        src/dm_activator.cc
-)
-set_target_properties(dependency_manager_cxx_static PROPERTIES OUTPUT_NAME "celix_dependency_manager_cxx_static")
-target_compile_options(dependency_manager_cxx_static PRIVATE -fPIC)
-if (APPLE)
-    target_link_libraries(dependency_manager_cxx_static Celix::framework "-undefined dynamic_lookup")
-else()
-    target_link_libraries(dependency_manager_cxx_static Celix::framework)
-endif()
-
-#add_library(dependency_manager_cxx_static INTERFACE)
-#target_sources(dependency_manager_cxx_static INTERFACE src/dm_activator.cc)
-
-install(TARGETS dependency_manager_cxx_static EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework)
-
-#Setup target aliases to match external usage
-add_library(Celix::dependency_manager_cxx_static ALIAS dependency_manager_cxx_static)

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager_cxx/readme.md
----------------------------------------------------------------------
diff --git a/dependency_manager_cxx/readme.md b/dependency_manager_cxx/readme.md
deleted file mode 100644
index 5f80744..0000000
--- a/dependency_manager_cxx/readme.md
+++ /dev/null
@@ -1,84 +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.
--->
-
-# Apache Celix C++ Dependency Manager
-
-## Introduction
-
-The C++ Dependency Manager contains a static library which can be used to manage (dynamic) services on a higher abstraction level in a declarative style. 
-The Apache Celix C++ Dependency Manager is inspired by the [Apache Felix Dependency Manager](http://felix.apache.org/documentation/subprojects/apache-felix-dependency-manager.html).
-
-The C++ Dependency Manager uses fluent interface to make specifying DM components and service dependencies very concise and relies on features introduced in C++11.
-
-## C++ and C Dependency Manager
-
-The C++ Dependency Manager is build on top of the C Dependency Manager.
-To get a good overview of the C++ Dependency Manager please read the [Dependency Manager documentation](../dependency_manager/README.md)
-
-## DM Parts
-
-The C++ Dependency Manager consist out of four main parts: `celix::dm::DmActivator`, `celix::dm::DependencyManager`, `celix::dm::Component` and `celix::dm::ServiceDependency`.
-
-### DmActivator
-
-The `DmActivator` class should be inherited by a bundle specific Activator. 
-
-- The static `DmActivator::create` method needs to be implemented and should return a bundle specific subclass instance of the DmActivator.
-- The `DmActivator::init` method should be overridden and can be used to specify which components to use in the bundle.
-- The `DmActivator::deinit` method can be overridden if some cleanup is needed when a bundle is stopped.
-
-### Dependency Manager
-
-The `DependencyManager` act as an entry point to create (DM) Components.
-
-### Component
-
-The (DM) `Component` manages the life cycle of a component (of the template type T). For example, when all required service dependencies are available the `Component` will call the `start` specified callback function of the component.
-
-- The `Component::setInstance` method can be used to set the component instance to used. If no instance is set the (DM) `Component` will (lazy) create a component instance using the default constructor.
-- The `Component::addInterface` method can be used to specify one additional C++ service provided by the component.
-- The `Component::addCInterface` method can be used to specify one additional C service provided by the component.
-- The `Component::createServiceDependency` method can be used to specify one additional typed C++ service dependency.
-- The `Component::createCServiceDependency` method can be used to specify one additional typed C service dependency.
-
-### ServiceDependency and CServiceDependency
-
-The (DM) `ServiceDependency` can be used to specify C++ service dependencies for a component and the (DM) `CServiceDependency` can be used to specify C service dependencies for a component.
-
-When these dependencies are set to required the `Component` will ensure that components will only be started when all required dependencies are available and stop the component if any of the required dependencies are removed.
-This feature should prevent a lot of boiler plating code compared to using a service tracker or services references directly. 
-
-A service dependency update strategy can also be specified (suspend or locking. Default this strategy is set to `DependencyUpdateStrategy::suspend` this strategy will stop and start (suspend) a component when any of the specified service dependencies changes (are removed, added or modified).
-When correctly used this strategy removes the need for locking services during updates/invocation. See the dependency manager_cxx example for more details.
-
-- The `(C)ServiceDependency::setCallbacks` methods can be used to specify the function callback used when services are added, set, removed or modified. 
-- The `(C)ServiceDependency::setRequired` methods can be used to specify if a service dependency is required.
-- The `(C)ServiceDependency::setStrategy` methods can be used to specify the service dependency update strategy (suspend or locking).
-
-### References
-
-For more information examples please see
-
-- [The C++ Dependency Manager API](include/celix/dm): The c++ dependency manager header files
-- [Dm C++ example](../examples/dm_example_cxx): A DM C++ example.
-- [Getting Started: Using Services with C++](../documents/getting_started/using_services_with_cxx.md): A introduction how to work with services using the C++ dependency manager
-
-## Using info
-
-If the Celix C++ Dependency Manager is installed, 'find_package(Celix)' will set:
- - The `Celix::shell_api` interface (i.e. headers only) library target
- - The `Celix::shell` bundle target

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager_cxx/src/dm_activator.cc
----------------------------------------------------------------------
diff --git a/dependency_manager_cxx/src/dm_activator.cc b/dependency_manager_cxx/src/dm_activator.cc
deleted file mode 100644
index 56ab6bf..0000000
--- a/dependency_manager_cxx/src/dm_activator.cc
+++ /dev/null
@@ -1,91 +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.
- */
-
-#include <utility>
-#include <memory>
-
-#include "celix/dm/DependencyManager.h"
-#include "celix/dm/DmActivator.h"
-#include "bundle_activator.h"
-
-
-struct BundleActivatorData {
-    DependencyManager mng;
-    std::unique_ptr<celix::dm::DmActivator> act;
-};
-
-extern "C" celix_status_t bundleActivator_create(bundle_context_pt context, void** userData) {
-    int status = CELIX_SUCCESS;
-
-    BundleActivatorData* data = nullptr;
-#ifdef __EXCEPTIONS
-    data = new BundleActivatorData{
-        .mng = celix::dm::DependencyManager{context},
-        .act = nullptr
-    };
-#else
-    data = new(std::nothrow) BundleActivatorData{
-            .mng = celix::dm::DependencyManager{context},
-            .act = nullptr
-    };
-#endif
-    if (data != nullptr) {
-        data->act = std::unique_ptr<celix::dm::DmActivator>{celix::dm::DmActivator::create(data->mng)};
-    }
-
-    if (data == nullptr || data->act == nullptr) {
-        status = CELIX_ENOMEM;
-        if (data != nullptr) {
-            data->act = nullptr;
-        }
-        delete data;
-        *userData = nullptr;
-    } else {
-        *userData = data;
-    }
-    return status;
-}
-
-extern "C" celix_status_t bundleActivator_start(void* userData, [[gnu::unused]] bundle_context_pt context) {
-    int status = CELIX_SUCCESS;
-    BundleActivatorData* data = static_cast<BundleActivatorData*>(userData);
-    if (data != nullptr) {
-        status = data->act->start();
-    }
-    return status;
-}
-
-extern "C" celix_status_t bundleActivator_stop(void* userData, [[gnu::unused]] bundle_context_pt context) {
-    int status = CELIX_SUCCESS;
-    BundleActivatorData* data = static_cast<BundleActivatorData*>(userData);
-    if (data != nullptr) {
-        status = data->act->stop();
-    }
-    return status;
-}
-
-extern "C" celix_status_t bundleActivator_destroy([[gnu::unused]] void* userData,[[gnu::unused]]     bundle_context_pt context ) {
-    int status = CELIX_SUCCESS;
-    BundleActivatorData* data = static_cast<BundleActivatorData*>(userData);
-    if (data != nullptr) {
-        data->act = nullptr;
-    }
-    delete data;
-    return status;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/dependency_manager_cxx/todo.md
----------------------------------------------------------------------
diff --git a/dependency_manager_cxx/todo.md b/dependency_manager_cxx/todo.md
deleted file mode 100644
index e7a8134..0000000
--- a/dependency_manager_cxx/todo.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# TODO integrate cxx dep man into framework
-
-- Move documentation
-- Move dummy targets
-- Depecrate the Celix::dependency_manager_cxx_static target. (how?)
-- Eventually remove the deprecated cxx dm target
-- The bundle activator is now still a small .cc file, still resulting in
-a static libary which has to be linked as whole. Make this a src dependency? or some how a
-header impl ?
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/deployment_admin/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/deployment_admin/CMakeLists.txt b/deployment_admin/CMakeLists.txt
deleted file mode 100644
index a83b1cd..0000000
--- a/deployment_admin/CMakeLists.txt
+++ /dev/null
@@ -1,72 +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.
-
-celix_subproject(DEPLOYMENT_ADMIN "Option to enable building the Deployment Admin Service bundles" ON DEPS framework launcher shell_tui log_writer)
-if (DEPLOYMENT_ADMIN)
-	
-    find_package(CURL REQUIRED)
-    find_package(UUID REQUIRED)
-    find_package(ZLIB REQUIRED)
-
-    add_library(deployment_admin_api INTERFACE)
-    target_include_directories(deployment_admin_api INTERFACE 
-	    $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/api>
-	    $<INSTALL_INTERFACE:include/celix/deployment_admin>
-    )
-
-    add_celix_bundle(deployment_admin
-        SYMBOLIC_NAME "apache_celix_deployment_admin"
-        VERSION "0.0.2"
-        NAME "Apache Celix Deployment Admin"
-        SOURCES
-            src/deployment_package
-            src/deployment_admin
-            src/deployment_admin_activator
-            src/ioapi
-            src/miniunz
-            src/unzip
-            src/log
-            src/log_store
-            src/log_sync
-    )
-
-    target_compile_definitions(deployment_admin PRIVATE -DUSE_FILE32API)
-    target_include_directories(deployment_admin PRIVATE src)
-    target_include_directories(deployment_admin SYSTEM PRIVATE
-            ${CURL_INCLUDE_DIRS}
-            ${UUID_INCLUDE_DIRS}
-            ${ZLIB_INCLUDE_DIRS}
-    )
-    target_link_libraries(deployment_admin PRIVATE ${CURL_LIBRARIES} ${UUID_LIBRARIES} ${ZLIB_LIBRARIES} deployment_admin_api)
-
-    install(TARGETS deployment_admin_api EXPORT celix COMPONENT deployment_admin)
-    install(DIRECTORY api/ DESTINATION include/celix/deployment_admin COMPONENT deployment_admin)
-    install_celix_bundle(deployment_admin EXPORT celix COMPONENT deployment_admin)
-
-    #Setup target aliases to match external usage
-    add_library(Celix::deployment_admin_api ALIAS deployment_admin_api)
-    add_library(Celix::deployment_admin ALIAS deployment_admin)
-
-    add_celix_container(deployment-admin
-        BUNDLES Celix::deployment_admin Celix::shell Celix::shell_tui Celix::log_service Celix::log_writer_stdout
-        PROPERTIES
-    		"deployment_admin_url=http://localhost:8080"
-    		"deployment_admin_identification=celix"
-    		"org.osgi.framework.storage.clean=onFirstInit"
-    )
-
-endif (DEPLOYMENT_ADMIN)

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/deployment_admin/README.md
----------------------------------------------------------------------
diff --git a/deployment_admin/README.md b/deployment_admin/README.md
deleted file mode 100644
index 72fe8e2..0000000
--- a/deployment_admin/README.md
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-   
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-## Deployment Admin
-
-The Celix Deployment Admin implements the OSGi Deployment Admin specification, which provides functionality to manage deployment packages. Deployment package are bundles and other artifacts that can be installed, updated and uninstalled as single unit.
-
-It can be used for example with Apache Ace, which allows you to centrally manage and distribute software components, configuration data and other artifacts.
-
-###### Properties
-                  tags used by the deployment admin
-
-## CMake option
-    BUILD_DEPLOYMENT_ADMIN=ON
-
-## Deployment Admin Config Options
-
-- deployment_admin_identification     id used by the deployment admin to identify itself
-- deployment_admin_url                url of the deployment server
-- deployment_cache_dir                possible cache dir for the deployment admin update
-- deployment_tags
-
-## Using info
-
-If the Celix Deployment Admin is installed, 'find_package(Celix)' will set:
- - The `Celix::deployment_admin_api` interface (i.e. headers only) library target
- - The `Celix::deployment_admin` bundle target

http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/deployment_admin/api/resource_processor.h
----------------------------------------------------------------------
diff --git a/deployment_admin/api/resource_processor.h b/deployment_admin/api/resource_processor.h
deleted file mode 100644
index f91e13b..0000000
--- a/deployment_admin/api/resource_processor.h
+++ /dev/null
@@ -1,54 +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.
- */
-/*
- * resource_processor.h
- *
- *  \date       Feb 13, 2012
- *  \author    	<a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright	Apache License, Version 2.0
- */
-
-#ifndef RESOURCE_PROCESSOR_H_
-#define RESOURCE_PROCESSOR_H_
-
-#include "celix_errno.h"
-
-#define DEPLOYMENTADMIN_RESOURCE_PROCESSOR_SERVICE "resource_processor"
-
-typedef struct resource_processor *resource_processor_pt;
-
-typedef struct resource_processor_service *resource_processor_service_pt;
-
-struct resource_processor_service {
-	resource_processor_pt processor;
-	celix_status_t (*begin)(resource_processor_pt processor, char *packageName);
-
-	celix_status_t (*process)(resource_processor_pt processor, char *name, char *path);
-
-	celix_status_t (*dropped)(resource_processor_pt processor, char *name);
-	celix_status_t (*dropAllResources)(resource_processor_pt processor);
-
-	//celix_status_t (*prepare)(resource_processor_pt processor);
-	//celix_status_t (*commit)(resource_processor_pt processor);
-	//celix_status_t (*rollback)(resource_processor_pt processor);
-
-	//celix_status_t (*cancel)(resource_processor_pt processor);
-};
-
-#endif /* RESOURCE_PROCESSOR_H_ */