http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_admin/private/src/event_admin_impl.c ---------------------------------------------------------------------- diff --git a/event_admin/event_admin/private/src/event_admin_impl.c b/event_admin/event_admin/private/src/event_admin_impl.c deleted file mode 100644 index a7eeb49..0000000 --- a/event_admin/event_admin/private/src/event_admin_impl.c +++ /dev/null @@ -1,212 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * event_admin_impl.c - * - * Created on: Jul 24, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ -#include <stdlib.h> - -#include "event_admin.h" -#include "event_admin_impl.h" -#include "event_handler.h" -#include "hash_map.h" -#include "utils.h" -#include "celix_log.h" - - -celix_status_t eventAdmin_create(bundle_context_pt context, event_admin_pt *event_admin){ - celix_status_t status = CELIX_SUCCESS; - *event_admin = calloc(1,sizeof(**event_admin)); - if (!*event_admin) { - status = CELIX_ENOMEM; - } else { - (*event_admin)->channels = hashMap_create(utils_stringHash, utils_stringHash, utils_stringEquals, utils_stringEquals); - (*event_admin)->context =context; - status = arrayList_create(&(*event_admin)->event_handlers); - } - return status; -} - -celix_status_t eventAdmin_destroy(event_admin_pt *event_admin) -{ - celix_status_t status = CELIX_SUCCESS; - //free(*event_admin); - return status; -} - -celix_status_t eventAdmin_getEventHandlersByChannel(bundle_context_pt context, const char * serviceName, array_list_pt *eventHandlers) { - celix_status_t status = CELIX_SUCCESS; - //celix_status_t status = bundleContext_getServiceReferences(context, serviceName, NULL, eventHandlers); - return status; -} - -celix_status_t eventAdmin_postEvent(event_admin_pt event_admin, event_pt event) { - celix_status_t status = CELIX_SUCCESS; - - const char *topic; - - eventAdmin_getTopic(&event, &topic); - - array_list_pt event_handlers; - arrayList_create(&event_handlers); - eventAdmin_lockHandlersList(event_admin, topic); - eventAdmin_findHandlersByTopic(event_admin, topic, event_handlers); - // TODO make this async! - array_list_iterator_pt handlers_iterator = arrayListIterator_create(event_handlers); - while (arrayListIterator_hasNext(handlers_iterator)) { - event_handler_service_pt event_handler_service = (event_handler_service_pt) arrayListIterator_next(handlers_iterator); - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_INFO, "handler found (POST EVENT) for %s", topic); - event_handler_service->handle_event(&event_handler_service->event_handler, event); - } - eventAdmin_releaseHandersList(event_admin, topic); - return status; -} - -celix_status_t eventAdmin_sendEvent(event_admin_pt event_admin, event_pt event) { - celix_status_t status = CELIX_SUCCESS; - - const char *topic; - eventAdmin_getTopic(&event, &topic); - - array_list_pt event_handlers; - arrayList_create(&event_handlers); - eventAdmin_lockHandlersList(event_admin, topic); - eventAdmin_findHandlersByTopic(event_admin, topic, event_handlers); - array_list_iterator_pt handlers_iterator = arrayListIterator_create(event_handlers); - while (arrayListIterator_hasNext(handlers_iterator)) { - event_handler_service_pt event_handler_service = (event_handler_service_pt) arrayListIterator_next(handlers_iterator); - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_INFO, "handler found (SEND EVENT) for %s", topic); - event_handler_service->handle_event(&event_handler_service->event_handler, event); - } - eventAdmin_releaseHandersList(event_admin, topic); - return status; -} - -celix_status_t eventAdmin_findHandlersByTopic(event_admin_pt event_admin, const char *topic, - array_list_pt event_handlers) { - celix_status_t status = CELIX_SUCCESS; - hash_map_pt channels = event_admin->channels; - channel_t channel = hashMap_get(channels, topic); - if (channel != NULL) { - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_INFO, "found channel: %s", topic); - if (channel->eventHandlers != NULL && !hashMap_isEmpty(channel->eventHandlers)) { - // iterate throught the handlers and add them to the array list for result. - hash_map_iterator_pt hashmap_iterator = hashMapIterator_create(channel->eventHandlers); - while (hashMapIterator_hasNext(hashmap_iterator)) { - arrayList_add(event_handlers, (event_handler_service_pt) hashMapIterator_nextValue(hashmap_iterator)); - } - } - } else { - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_WARNING, "no such channel: %s", topic); - } - return status; -} - -celix_status_t eventAdmin_createEventChannels(event_admin_pt *event_admin, const char *topic, - event_handler_service_pt event_handler_service) { - celix_status_t status = CELIX_SUCCESS; - channel_t channel = hashMap_get((*event_admin)->channels, topic); - if (channel == NULL) { - //create channel - logHelper_log(*(*event_admin)->loghelper, OSGI_LOGSERVICE_ERROR, "Creating channel: %s", topic); - - - - channel = calloc(1, sizeof(*channel)); - if (!channel) { - status = CELIX_ENOMEM; - } else { - char *channel_name = strdup(topic); - channel->topic = channel_name; - channel->eventHandlers = hashMap_create(NULL,NULL,NULL,NULL); - //channel->channelLock = NULL; - // apr_thread_mutex_create(&channel->channelLock, APR_THREAD_MUTEX_NESTED, subPool); - hashMap_put((*event_admin)->channels, channel_name, channel); - } - } - if (channel) { - hashMap_put(channel->eventHandlers, &event_handler_service, event_handler_service); - } - return status; - - -} - -celix_status_t eventAdmin_lockHandlersList(event_admin_pt event_admin, const char *topic) { - celix_status_t status = CELIX_SUCCESS; - /*channel_t channel = hashMap_get(event_admin->channels, topic); - if (channel != NULL) { - // TODO verify this will never deadlock... - // apr_status_t status; - do { - // status = apr_thread_mutex_trylock(channel->channelLock); - } while (status != 0 && !APR_STATUS_IS_EBUSY(status)); - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "LOCK: %s!", topic); - }*/ - return status; -} - -celix_status_t eventAdmin_releaseHandersList(event_admin_pt event_admin, const char *topic) { - celix_status_t status = CELIX_SUCCESS; - channel_t channel = hashMap_get(event_admin->channels, topic); - if (channel != NULL) { - // TODO check the result value... - // apr_thread_mutex_unlock(channel->channelLock); - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "UNLOCK: %s!", topic); - } - return status; -} - -celix_status_t eventAdmin_addingService(void * handle, service_reference_pt ref, void **service) { - celix_status_t status = CELIX_SUCCESS; - event_admin_pt event_admin = handle; - status = bundleContext_getService(event_admin->context, ref, service); - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "test"); - printf("eventadmin adding service \n"); - return status; -} - -celix_status_t eventAdmin_addedService(void * handle, service_reference_pt ref, void * service) { - celix_status_t status = CELIX_SUCCESS; - event_admin_pt event_admin = handle; - event_handler_service_pt event_handler_service = NULL; - event_handler_service = (event_handler_service_pt) service; - const char *topic = NULL; - serviceReference_getProperty(ref, (char*)EVENT_TOPIC, &topic); - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "Original TOPIC: %s", topic); - printf("original topic: %s\n", topic); - eventAdmin_createEventChannels(&event_admin,topic,event_handler_service); - return status; -} - -celix_status_t eventAdmin_modifiedService(void * handle, service_reference_pt ref, void * service) { - event_admin_pt event_admin = (event_admin_pt) handle; - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "Event admin Modified"); - return CELIX_SUCCESS; -} - -celix_status_t eventAdmin_removedService(void * handle, service_reference_pt ref, void * service) { - event_admin_pt event_admin = (event_admin_pt) handle; - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "Event admin Removed %p", service); - printf("Event admin Removed %p", service); - return CELIX_SUCCESS; -}
http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_admin/private/src/event_impl.c ---------------------------------------------------------------------- diff --git a/event_admin/event_admin/private/src/event_impl.c b/event_admin/event_admin/private/src/event_impl.c deleted file mode 100644 index aad9877..0000000 --- a/event_admin/event_admin/private/src/event_impl.c +++ /dev/null @@ -1,136 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * event_impl.c - * - * \Created on: Aug 22, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - * - */ -#include <stdlib.h> - -#include "event_admin.h" -#include "event_admin_impl.h" -#include "event_constants.h" -#include "celix_errno.h" -#include "stddef.h" - - - -celix_status_t eventAdmin_createEvent(event_admin_pt event_admin, const char *topic, properties_pt properties, - event_pt *event) { - celix_status_t status = CELIX_SUCCESS; - - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_DEBUG, "create event event admin pointer: %p",event_admin); - - - *event = calloc(1, sizeof(**event)); - if(!*event){ - status = CELIX_ENOMEM; - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_ERROR, "No MEM"); - }else { - logHelper_log(*event_admin->loghelper, OSGI_LOGSERVICE_INFO, "Event created : %s", topic); - (*event)->topic = topic; - (*event)->properties = properties; - properties_set((*event)->properties, (char *)EVENT_TOPIC, topic); - } - return status; -} - -celix_status_t eventAdmin_containsProperty( event_pt *event, char *property, bool *result){ - celix_status_t status = CELIX_SUCCESS; - if((*event)==NULL || property == NULL){ - status = CELIX_BUNDLE_EXCEPTION; - }else { - const char *propertyValue = properties_get((*event)->properties, property); - if(propertyValue == NULL){ - (*result)= false; - }else { - (*result) = true; - } - } - return status; -} - -celix_status_t eventAdmin_event_equals( event_pt *event, event_pt *compare, bool *result){ - celix_status_t status = CELIX_SUCCESS; - if(event == compare){ - (*result) = true; - }else { - int sizeofEvent = hashMap_size((*event)->properties); - int sizeofCompare = hashMap_size((*compare)->properties); - if(sizeofEvent == sizeofCompare){ - (*result) = true; - }else { - - } - } - return status; -} - -celix_status_t eventAdmin_getProperty(event_pt *event, char *propertyKey, const char **propertyValue) { - celix_status_t status = CELIX_SUCCESS; - *propertyValue = properties_get((*event)->properties,propertyKey); - - return status; -} - -celix_status_t eventAdmin_getPropertyNames( event_pt *event, array_list_pt *names){ - celix_status_t status = CELIX_SUCCESS; - properties_pt properties = (*event)->properties; - if (hashMap_size(properties) > 0) { - hash_map_iterator_pt iterator = hashMapIterator_create(properties); - while (hashMapIterator_hasNext(iterator)) { - hash_map_entry_pt entry = hashMapIterator_nextEntry(iterator); - char * key =hashMapEntry_getKey(entry); - arrayList_add((*names),key); - } - } - return status; -} - -celix_status_t eventAdmin_getTopic(event_pt *event, const char **topic) { - celix_status_t status = CELIX_SUCCESS; - const char *value; - value = properties_get((*event)->properties,(char*) EVENT_TOPIC); - *topic = value; - - return status; -} - -celix_status_t eventAdmin_hashCode( event_pt *event, int *hashCode){ - celix_status_t status = CELIX_SUCCESS; - return status; -} - -celix_status_t eventAdmin_matches( event_pt *event){ - celix_status_t status = CELIX_SUCCESS; - return status; -} - -celix_status_t eventAdmin_toString( event_pt *event, char *eventString){ - celix_status_t status = CELIX_SUCCESS; - return status; -} - - - - - http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_admin/public/include/event_admin.h ---------------------------------------------------------------------- diff --git a/event_admin/event_admin/public/include/event_admin.h b/event_admin/event_admin/public/include/event_admin.h deleted file mode 100644 index 4955b54..0000000 --- a/event_admin/event_admin/public/include/event_admin.h +++ /dev/null @@ -1,70 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * event_admin.h - * - * Created on: Jul 9, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ - -#ifndef EVENT_ADMIN_H_ -#define EVENT_ADMIN_H_ -#include "celix_errno.h" - -#include "listener_hook_service.h" - -#define EVENT_ADMIN_NAME "event_admin" -typedef struct event_admin *event_admin_pt; -typedef struct event_admin_service *event_admin_service_pt; - -struct event { - const char *topic; - properties_pt properties; -}; -typedef struct event *event_pt; - -/** - * @desc service description for the event admin. - * @param event_admin_pt eventAdmin. incomplete type for the event admin instance. - * @param celix_status_t postEvent. Pointer to the post event function. For async sending - * @param celix_status_t sendEvent. Pointer to the send event function. for Sync sending - */ -struct event_admin_service { - event_admin_pt eventAdmin; - celix_status_t (*postEvent)(event_admin_pt event_admin, event_pt event); - celix_status_t (*sendEvent)(event_admin_pt event_admin, event_pt event); - - celix_status_t (*createEvent)(event_admin_pt event_admin, const char *topic, properties_pt properties, - event_pt *event); - celix_status_t (*containsProperty)(event_pt *event, char *property, bool *result); - celix_status_t (*event_equals)(event_pt *event, event_pt *compare, bool *result); - - celix_status_t (*getProperty)(event_pt *event, char *propertyKey, const char **propertyValue); - celix_status_t (*getPropertyNames)(event_pt *event, array_list_pt *names); - - celix_status_t (*getTopic)(event_pt *event, const char **topic); - celix_status_t (*hashCode)(event_pt *event, int *hashCode); - celix_status_t (*matches)( event_pt *event); - celix_status_t (*toString)( event_pt *event, char *eventString); - -}; - - -#endif /* EVENT_ADMIN_H_ */ http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_admin/public/include/event_constants.h ---------------------------------------------------------------------- diff --git a/event_admin/event_admin/public/include/event_constants.h b/event_admin/event_admin/public/include/event_constants.h deleted file mode 100644 index 80b093a..0000000 --- a/event_admin/event_admin/public/include/event_constants.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * event_constants.h - * - * Created on: Aug 11, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ - -#ifndef EVENT_CONSTANTS_H_ -#define EVENT_CONSTANTS_H_ - -static const char * const EVENT_BUNDLE = "bundle"; -static const char * const EVENT_BUNDLE_ID = "bundle.id"; -static const char * const EVENT_BUNDLE_SIGNER = "bundle.signer"; - -static const char * const EVENT_BUNDLE_SYMBOLICNAME = "bundle.symbolicName"; - - -static const char * const EVENT_BUNDLE_VERSION = "bundle.version"; - -static const char * const EVENT_DELIVERY_ASYNC_ORDERED = "async.ordered"; -static const char * const EVENT_DELIVERY_ASYNC_UNORDERED = "async.unordered"; -static const char * const EVENT = "event"; -static const char * const EVENT_DELIVERY = "event.delivery"; -static const char * const EVENT_FILTER = "event.filter"; -static const char * const EVENT_TOPIC = "event.topic"; -static const char * const EVENT_EXCEPTION = "exception"; -static const char * const EVENT_EXCEPTION_CLASS = "exception.class"; -static const char * const EVENT_EXCEPTION_MESSAGE = "exception.message"; -static const char * const MESSAGE = "message"; - -static const char * const EVENT_SERVICE = "service"; - -static const char * const EVENT_SERVICE_ID = "async.ordered"; - -static const char * const EVENT_SERVICE_OBJECTCLASS = "service.objectClass"; - -static const char * const EVENT_SERVICE_PID = "service.pid"; - -static const char * const EVENT_TIMESTAMP = "timestamp"; - -#endif /* EVENT_CONSTANTS_H_ */ http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_admin/public/include/event_handler.h ---------------------------------------------------------------------- diff --git a/event_admin/event_admin/public/include/event_handler.h b/event_admin/event_admin/public/include/event_handler.h deleted file mode 100644 index 5f76c6d..0000000 --- a/event_admin/event_admin/public/include/event_handler.h +++ /dev/null @@ -1,48 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * event_handler.h - * - * Created on: Jul 22, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ - -#ifndef EVENT_HANDLER_H_ -#define EVENT_HANDLER_H_ -#include "event_admin.h" -#include "properties.h" -static const char * const EVENT_HANDLER_SERVICE = "service.event.handler"; - -typedef struct event_handler_service *event_handler_service_pt; -typedef struct event_handler *event_handler_pt; //ADT - - - -/** - * @desc description of the event handler service - * @param event_handler_pt event_handler incomplete type pointer for the event_handler instance - * @param celix_status_t handle event. pointer to the handle event method. - */ -struct event_handler_service { - event_handler_pt event_handler; - celix_status_t (*handle_event)(event_handler_pt *event_handler, event_pt event); -}; - -#endif /* EVENT_HANDLER_H_ */ http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_handler/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/event_admin/event_handler/CMakeLists.txt b/event_admin/event_handler/CMakeLists.txt deleted file mode 100644 index 92813a7..0000000 --- a/event_admin/event_handler/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. - - -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories(private/include) -include_directories(${PROJECT_SOURCE_DIR}/event_admin/event_admin/public/include) -include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include") - - -add_celix_bundle(event_handler - VERSION 0.0.0 - SOURCES - private/src/event_handler_activator.c - private/src/event_handler_impl.c - ${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c -) - -install_celix_bundle(event_handler) - -target_link_libraries(event_handler Celix::framework) http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_handler/private/include/event_handler_impl.h ---------------------------------------------------------------------- diff --git a/event_admin/event_handler/private/include/event_handler_impl.h b/event_admin/event_handler/private/include/event_handler_impl.h deleted file mode 100644 index 44fc671..0000000 --- a/event_admin/event_handler/private/include/event_handler_impl.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. - */ -/* - * event_handler_impl.h - * - * Created on: Aug 20, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ - -#ifndef EVENT_HANDLER_IMPL_H_ -#define EVENT_HANDLER_IMPL_H_ -#include "event_admin.h" -#include "event_constants.h" -#include "event_handler.h" - -#include "bundle_activator.h" -#include "bundle_context.h" -#include "service_tracker.h" -#include "service_listener.h" -#include "service_registration.h" -#include "listener_hook_service.h" -#include "event_constants.h" -/** - * @desc handle the event send to the event handler - * @param event_handler_pt *instance the instance of the event handlers - * @param event_pt event. the event to be handled. - */ -celix_status_t eventHandlerHandleEvent(event_handler_pt *instance, event_pt event) ; - -/** - * @desc create the event handler - * @param apr_pool_t *pool the apr pool to contain the handler - * @param event_handler_pt *event_handler. the event handler to be made. - */ -celix_status_t eventHandlerCreate(bundle_context_pt context, event_handler_pt *event_handler); -celix_status_t eventHandlerRemovedService(void * handle, service_reference_pt ref, void * service) ; -celix_status_t eventHandlerModifiedService(void * handle, service_reference_pt ref, void * service) ; -celix_status_t eventHandlerAddedService(void * handle, service_reference_pt ref, void * service) ; -celix_status_t eventHandlerAddingService(void * handle, service_reference_pt ref, void **service) ; -#endif /* EVENT_HANDLER_IMPL_H_ */ http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_handler/private/src/event_handler_activator.c ---------------------------------------------------------------------- diff --git a/event_admin/event_handler/private/src/event_handler_activator.c b/event_admin/event_handler/private/src/event_handler_activator.c deleted file mode 100644 index d39cfd9..0000000 --- a/event_admin/event_handler/private/src/event_handler_activator.c +++ /dev/null @@ -1,104 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * event_handler_activator.c - * - * Created on: Jul 9, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ -#include <stdlib.h> - - - -#include "event_handler_impl.h" - -static const char * const EVENT_HANDLER_NAME = "demo"; -struct activator { - event_handler_service_pt event_handler_service; - service_registration_pt registration; - service_tracker_pt eventAdminTracker; -}; - -celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) { - celix_status_t status = CELIX_SUCCESS; - struct activator *activator; - - activator = calloc(1, sizeof(*activator)); - activator->registration = NULL; - *userData = activator; - - event_handler_pt event_handler = NULL; - event_handler_service_pt event_handler_service = NULL; - - status = eventHandlerCreate(context, &event_handler); - if (status == CELIX_SUCCESS) { - event_handler_service = calloc(1, sizeof(event_handler_service)); - if (!event_handler_service) { - status = CELIX_ENOMEM; - } else { - event_handler_service->event_handler = event_handler; - event_handler_service->handle_event = eventHandlerHandleEvent; - } - } - activator->event_handler_service = event_handler_service; - - - return status; -} - -celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - struct activator *activator = userData; - - properties_pt properties = NULL; - properties = properties_create(); - properties_set(properties, (char *) EVENT_HANDLER_SERVICE, (const char *) EVENT_HANDLER_NAME); - properties_set(properties, (char *) EVENT_TOPIC, (const char *) "log/error/eventpublishers/event"); - - event_handler_service_pt event_handler_service = activator->event_handler_service; - bundleContext_registerService(context, (const char *) EVENT_HANDLER_SERVICE, event_handler_service, properties, - &activator->registration); - - /*if (status == CELIX_SUCCESS) { - service_tracker_customizer_pt customizer = NULL; - service_tracker_pt tracker = NULL; - serviceTrackerCustomizer_create(activator->event_handler_service->event_handler, eventHandlerAddingService, eventHandlerAddedService, eventHandlerModifiedService, eventHandlerRemovedService, &customizer); - serviceTracker_create(context, (const char *) EVENT_ADMIN_NAME, customizer, &tracker); - activator->eventAdminTracker = tracker; - serviceTracker_open(tracker); - }*/ - return status; -} - -celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - struct activator *data = userData; - serviceRegistration_unregister(data->registration); - //serviceTracker_close(data->tracker); - //status = logHelper_stop(data->loghelper); - //logHelper_destroy(&data->loghelper); - return status; -} - - -celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - return status; -} http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_handler/private/src/event_handler_impl.c ---------------------------------------------------------------------- diff --git a/event_admin/event_handler/private/src/event_handler_impl.c b/event_admin/event_handler/private/src/event_handler_impl.c deleted file mode 100644 index 52ff1b7..0000000 --- a/event_admin/event_handler/private/src/event_handler_impl.c +++ /dev/null @@ -1,111 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * event_admin_impl.c - * - * Created on: Jul 24, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ -#include <stdlib.h> -#include "event_handler.h" -#include "log_helper.h" -#include "log_service.h" - -struct event_handler { - event_admin_service_pt event_admin_service; - bundle_context_pt context; - log_helper_pt loghelper; - -}; - -celix_status_t eventHandlerCreate(bundle_context_pt context, event_handler_pt *event_handler) { - celix_status_t status = CELIX_SUCCESS; - *event_handler = calloc(1, sizeof(**event_handler)); - if (!*event_handler) { - status = CELIX_ENOMEM; - } else { - (*event_handler)->event_admin_service = NULL; - (*event_handler)->context = context; - - if (logHelper_create(context, &(*event_handler)->loghelper) == CELIX_SUCCESS) { - logHelper_start((*event_handler)->loghelper); - } - } - return status; -} - -celix_status_t eventHandlerHandleEvent(event_handler_pt *event_handler, event_pt event) { - celix_status_t status = CELIX_SUCCESS; - if (event != NULL) { - const char *topic = event->topic; - //status = (*event_handler)->event_admin_service->getTopic(&event, &topic); - logHelper_log((*event_handler)->loghelper, OSGI_LOGSERVICE_INFO, "[SUB] topic of event: %s.", topic); - - array_list_pt propertyNames; - arrayList_create(&propertyNames); - properties_pt properties = event->properties; - if (hashMap_size(properties) > 0) { - hash_map_iterator_pt iterator = hashMapIterator_create(properties); - while (hashMapIterator_hasNext(iterator)) { - hash_map_entry_pt entry = hashMapIterator_nextEntry(iterator); - char *key = hashMapEntry_getKey(entry); - arrayList_add(propertyNames, key); - } - } - array_list_iterator_pt propertyIter = arrayListIterator_create(propertyNames); - while (arrayListIterator_hasNext(propertyIter)) { - char *key = arrayListIterator_next(propertyIter); - const char *value = NULL; - value = properties_get((*event).properties, key); - - - logHelper_log((*event_handler)->loghelper, OSGI_LOGSERVICE_INFO, "[SUB] Key: %s value: %s.", key, value); - } - } - return status; -} - - -celix_status_t eventHandlerAddingService(void * handle, service_reference_pt ref, void **service) { - celix_status_t status = CELIX_SUCCESS; - event_handler_pt event_handler = handle; - status = bundleContext_getService(event_handler->context, ref, service); - return status; -} - -celix_status_t eventHandlerAddedService(void * handle, service_reference_pt ref, void * service) { - event_handler_pt data = (event_handler_pt) handle; - logHelper_log(data->loghelper, OSGI_LOGSERVICE_DEBUG, "[SUB] Event admin added."); - data->event_admin_service = (event_admin_service_pt) service; - return CELIX_SUCCESS; -} - -celix_status_t eventHandlerModifiedService(void * handle, service_reference_pt ref, void * service) { - event_handler_pt data = (event_handler_pt) handle; - logHelper_log(data->loghelper, OSGI_LOGSERVICE_DEBUG, "[SUB] Event admin modified."); - return CELIX_SUCCESS; -} - -celix_status_t eventHandlerRemovedService(void * handle, service_reference_pt ref, void * service) { - event_handler_pt data = (event_handler_pt) handle; - logHelper_log(data->loghelper, OSGI_LOGSERVICE_DEBUG, "[SUB] Event admin removed."); - data->event_admin_service = NULL; - return CELIX_SUCCESS; -} http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_publisher/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/event_admin/event_publisher/CMakeLists.txt b/event_admin/event_publisher/CMakeLists.txt deleted file mode 100644 index 4dd314a..0000000 --- a/event_admin/event_publisher/CMakeLists.txt +++ /dev/null @@ -1,34 +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_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories(private/include) -include_directories(${PROJECT_SOURCE_DIR}/event_admin/event_admin/public/include) -include_directories(${PROJECT_SOURCE_DIR}/log_service/public/include) - -add_celix_bundle(event_publisher - VERSION 0.0.0 - SOURCES - private/src/event_publisher_activator.c - private/src/event_publisher_impl.c - ${PROJECT_SOURCE_DIR}/log_service/public/src/log_helper.c -) - -install_celix_bundle(event_publisher) - -target_link_libraries(event_publisher Celix::framework) http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_publisher/private/include/event_publisher_impl.h ---------------------------------------------------------------------- diff --git a/event_admin/event_publisher/private/include/event_publisher_impl.h b/event_admin/event_publisher/private/include/event_publisher_impl.h deleted file mode 100644 index a2cab83..0000000 --- a/event_admin/event_publisher/private/include/event_publisher_impl.h +++ /dev/null @@ -1,83 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * event_publisher.h - * - * Created on: Aug 9, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ - -#ifndef EVENT_PUBLISHER_H_ -#define EVENT_PUBLISHER_H_ -#include "celix_errno.h" -#include "event_admin.h" - -#include "listener_hook_service.h" -#include "service_tracker.h" -#include "bundle_activator.h" -#include "bundle_context.h" -#include "service_tracker.h" -#include "service_listener.h" -#include "service_registration.h" -#include "event_constants.h" -#include "log_helper.h" -#include "log_service.h" - - -typedef struct event_publisher *event_publisher_pt; -struct event_publisher { - event_admin_service_pt event_admin_service; - bool running; - bool eventAdminAdded; - celix_thread_t sender; - bundle_context_pt context; - log_helper_pt loghelper; -}; -/** - * @desc create the event publisher - * @param apr_pool_t *pool. the memory pool to store the publisher - * @param bundle_context_pt context the bundle context - * @param event_publisher_pt *event_publisher. The publisher to be made. - */ -celix_status_t eventPublisherCreate(bundle_context_pt context, event_publisher_pt *event_publisher); -/** - * @desc start the event publisher. Starts the threads and trackers. - * @param event_publisher_pt *event_publisher the publisher to start - */ -celix_status_t eventPublisherStart(event_publisher_pt *event_publisher); - -/** - * @desc functions used by the event admin tracker - * @param void *handle, pointer to the event publisher - * @param service_reference_pt ref. pointer to the reference of the event admin - * @param void **service. pointer to the event admin service. - */ -celix_status_t eventPublisherAddingService(void * handle, service_reference_pt ref, void **service); -celix_status_t eventPublisherAddedService(void * handle, service_reference_pt ref, void * service); -celix_status_t eventPublisherModifiedService(void * handle, service_reference_pt ref, void * service); -celix_status_t eventPublisherRemovedService(void * handle, service_reference_pt ref, void * service); -/** - * @desc stop the event publisher. stopping threads and tracker - * @param event_publisher_pt *event_publisher. pointer to the publisher. - */ -celix_status_t eventPublisherStop(event_publisher_pt *event_publisher); - -void *produceEvents(void *handle); -#endif /* EVENT_PUBLISHER_H_ */ http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_publisher/private/src/event_publisher_activator.c ---------------------------------------------------------------------- diff --git a/event_admin/event_publisher/private/src/event_publisher_activator.c b/event_admin/event_publisher/private/src/event_publisher_activator.c deleted file mode 100644 index 279942f..0000000 --- a/event_admin/event_publisher/private/src/event_publisher_activator.c +++ /dev/null @@ -1,86 +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. - */ -/* - * activator.c - * - * Created on: Jul 9, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ -#include <stdlib.h> - - -#include "event_publisher_impl.h" - -struct activator { - bundle_context_pt context; - event_publisher_pt event_publisher; - service_tracker_pt tracker; -}; - -celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) { - celix_status_t status = CELIX_SUCCESS; - - struct activator *activator = NULL; - - activator = calloc(1, sizeof(*activator)); - activator->context = context; - *userData = activator; - - event_publisher_pt eventpublisher; - status = eventPublisherCreate(context, &eventpublisher); - if(status == CELIX_SUCCESS) { - activator->event_publisher = eventpublisher; - - } - - return status; -} - -celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - struct activator * data = (struct activator *) userData; - - - service_tracker_customizer_pt cust = NULL; - service_tracker_pt tracker = NULL; - data->context = context; - serviceTrackerCustomizer_create(data->event_publisher, eventPublisherAddingService, eventPublisherAddedService, eventPublisherModifiedService, eventPublisherRemovedService, &cust); - serviceTracker_create(context, (char *) EVENT_ADMIN_NAME, cust, &tracker); - data->tracker = tracker; - - serviceTracker_open(tracker); - - eventPublisherStart(&data->event_publisher); - return status; -} - -celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - struct activator * data = (struct activator *) userData; - eventPublisherStop(&data->event_publisher); - serviceTracker_close(data->tracker); - return status; -} - -celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - - return status; -} http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/event_admin/event_publisher/private/src/event_publisher_impl.c ---------------------------------------------------------------------- diff --git a/event_admin/event_publisher/private/src/event_publisher_impl.c b/event_admin/event_publisher/private/src/event_publisher_impl.c deleted file mode 100644 index 6a8bc00..0000000 --- a/event_admin/event_publisher/private/src/event_publisher_impl.c +++ /dev/null @@ -1,141 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * event_publisher_impl.c - * - * Created on: Jul 24, 2013 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ -#include <stdlib.h> - -#include <unistd.h> -#include <sys/time.h> -#include "event_publisher_impl.h" - -celix_thread_start_t eventPublisherSendEventThread(celix_thread_t *thd, void *handle); - -celix_status_t eventPublisherCreate(bundle_context_pt context, event_publisher_pt *event_publisher) { - celix_status_t status = CELIX_SUCCESS; - *event_publisher = calloc(1, sizeof(**event_publisher)); - if (!*event_publisher) { - status = CELIX_ENOMEM; - } else { - (*event_publisher)->event_admin_service = NULL; - - (*event_publisher)->eventAdminAdded = false; - (*event_publisher)->running = false; - (*event_publisher)->context = context; - (*event_publisher)->sender = celix_thread_default; - logHelper_create(context, &(*event_publisher)->loghelper); - } - return status; -} - -celix_status_t eventPublisherStart(event_publisher_pt *event_publisher) { - celix_status_t status = CELIX_SUCCESS; - (*event_publisher)->running = true; - logHelper_start((*event_publisher)->loghelper); - // celixThread_create((*event_publisher)->sender, NULL, eventPublisherSendEventThread, event_publisher); - status = celixThread_create(&(*event_publisher)->sender, NULL, produceEvents, &(*event_publisher)); - return status; -} - -celix_status_t eventPublisherStop(event_publisher_pt *event_publisher) { - (*event_publisher)->running = false; - //void * status; - // celixThread_join((*event_publisher)->sender, &status); - logHelper_stop((*event_publisher)->loghelper); - logHelper_destroy(&(*event_publisher)->loghelper); - return CELIX_SUCCESS; -} - -void *produceEvents(void *handle) { - event_publisher_pt *event_publisher = handle; - while ((*event_publisher)->running && (*event_publisher)->eventAdminAdded) { - // sleep(1000000); // 1 sec. - event_admin_service_pt *event_admin_service = &(*event_publisher)->event_admin_service; - event_admin_pt event_admin = (*event_admin_service)->eventAdmin; - if (event_admin_service != NULL) { - event_pt event; - properties_pt props = properties_create(); - properties_set(props, "This is a key", "this is a value"); - (*event_admin_service)->createEvent(event_admin, "log/error/eventpublishers/event", props, &event); - (*event_admin_service)->postEvent(event_admin, event); - (*event_admin_service)->sendEvent(event_admin, event); - printf("send event\n"); - } - } - return CELIX_SUCCESS; -} - -/*celix_thread_start_t eventPublisherSendEventThread(celix_thread_t *thd, void *handle) { - event_publisher_pt *client = (event_publisher_pt *) handle; - - while ((*client)->running && (*client)->eventAdminAdded) { - apr_sleep(1000000); // 1 sec. - - event_admin_service_pt *event_admin_service = &(*client)->event_admin_service; - event_admin_pt event_admin = (*event_admin_service)->eventAdmin; - if (event_admin_service != NULL) { - event_pt event; - properties_pt props = properties_create(); - properties_set(props, "This is a key", "this is a value"); - (*event_admin_service)->createEvent(event_admin, "log/error/eventpublishers/event", props, &event); - (*event_admin_service)->postEvent(event_admin, event); - (*event_admin_service)->sendEvent(event_admin, event); - } - } - celixThread_exit( APR_SUCCESS); - return NULL;* -}*/ - -celix_status_t eventPublisherAddingService(void * handle, service_reference_pt ref, void **service) { - celix_status_t status = CELIX_SUCCESS; - event_publisher_pt event_publisher = handle; - status = bundleContext_getService(event_publisher->context, ref, service); - - return status; -} - -celix_status_t eventPublisherAddedService(void * handle, service_reference_pt ref, void * service) { - event_publisher_pt data = (event_publisher_pt) handle; - logHelper_log(data->loghelper, OSGI_LOGSERVICE_DEBUG, "[PUB] Event admin added."); - printf(" added event admin"); - data->event_admin_service = (event_admin_service_pt) service; - data->eventAdminAdded = true; - return CELIX_SUCCESS; -} - -celix_status_t eventPublisherModifiedService(void * handle, service_reference_pt ref, void * service) { - event_publisher_pt data = (event_publisher_pt) handle; - logHelper_log(data->loghelper, OSGI_LOGSERVICE_DEBUG, "[PUB] Event admin modified."); - return CELIX_SUCCESS; -} - -celix_status_t eventPublisherRemovedService(void * handle, service_reference_pt ref, void * service) { - event_publisher_pt data = (event_publisher_pt) handle; - logHelper_log(data->loghelper, OSGI_LOGSERVICE_DEBUG, "[PUB] Event admin removed."); - - data->event_admin_service = NULL; - data->eventAdminAdded = false; - return CELIX_SUCCESS; -} - - http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/framework/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/framework/CMakeLists.txt b/framework/CMakeLists.txt deleted file mode 100644 index 1f0f423..0000000 --- a/framework/CMakeLists.txt +++ /dev/null @@ -1,357 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -find_package(ZLIB REQUIRED) -find_package(UUID REQUIRED) -find_package(CURL REQUIRED) - -if(WIN32) - set(IO src/iowin32.c) -endif(WIN32) - -set(SOURCES - src/attribute.c src/bundle.c src/bundle_archive.c src/bundle_cache.c - src/bundle_context.c src/bundle_revision.c src/capability.c src/celix_errorcodes.c - src/framework.c src/manifest.c src/ioapi.c - src/manifest_parser.c src/miniunz.c src/module.c - src/requirement.c src/resolver.c src/service_reference.c src/service_registration.c - src/service_registry.c src/service_tracker.c src/service_tracker_customizer.c - src/unzip.c src/wire.c - src/celix_log.c src/celix_launcher.c - src/celix_framework_factory.c - src/dm_dependency_manager_impl.c src/dm_component_impl.c - src/dm_service_dependency.c src/dm_event.c - ${IO} -) -add_library(framework SHARED ${SOURCES}) -set_target_properties(framework PROPERTIES OUTPUT_NAME "celix_framework") -target_include_directories(framework PUBLIC - $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> - $<INSTALL_INTERFACE:include/celix> -) -target_include_directories(framework PRIVATE src) -target_include_directories(framework SYSTEM PRIVATE - ${ZLIB_INCLUDE_DIR} - ${CURL_INCLUDE_DIR} - ${UUID_INCLUDE_DIR} -) -target_compile_definitions(framework PRIVATE -DUSE_FILE32API) - -set_target_properties(framework PROPERTIES "SOVERSION" 2) - -if(NOT APPLE) - set(UUID ${UUID_LIBRARY}) -endif() -target_link_libraries(framework PUBLIC Celix::utils) -target_link_libraries(framework PRIVATE ${UUID} ${ZLIB_LIBRARY} ${CURL_LIBRARIES}) - -install(TARGETS framework EXPORT celix DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT framework) -install(DIRECTORY include/ DESTINATION include/celix COMPONENT framework) - -#Alias setup to match external usage -add_library(Celix::framework ALIAS framework) - - -if (ENABLE_TESTING) - find_package(CppUTest REQUIRED) - include_directories(${CPPUTEST_INCLUDE_DIR}) - add_subdirectory(tst) -endif() - - -celix_subproject(FRAMEWORK_TESTS "Option to build the framework tests" "OFF" DEPS) -if (ENABLE_TESTING AND FRAMEWORK_TESTS) - find_package(CppUTest REQUIRED) - - include_directories(${CPPUTEST_INCLUDE_DIR}) - include_directories(${CPPUTEST_EXT_INCLUDE_DIR}) - include_directories(include src) - - - add_executable(attribute_test - private/test/attribute_test.cpp - src/attribute.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(attribute_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - -# add_executable(bundle_archive_test -# private/mock/celix_log_mock.c -# private/test/bundle_archive_test.cpp -# src/bundle_revision.c -# src/manifest.c -# src/miniunz.c -# src/unzip.c -# src/ioapi.c -# src/properties.c -# src/bundle_archive.c -# src/celix_errorcodes.c -# src/utils.c) -# target_link_libraries(bundle_archive_test Celix::utils ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} ${ZLIB_LIBRARY} pthread) - - - add_executable(bundle_cache_test - private/test/bundle_cache_test.cpp - private/mock/bundle_archive_mock.c - private/mock/properties_mock.c - src/bundle_cache.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(bundle_cache_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(bundle_context_test - private/test/bundle_context_test.cpp - private/mock/bundle_mock.c - private/mock/framework_mock.c - private/mock/service_registry_mock.c - private/mock/service_registration_mock.c - private/mock/service_reference_mock.c - src/service_tracker.c #TODO make mock for svc tracker - src/service_tracker_customizer.c - src/bundle_context.c - src/celix_errorcodes.c - private/mock/dm_dependency_manager_mock.c - private/mock/celix_log_mock.c) - target_link_libraries(bundle_context_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(bundle_revision_test - private/test/bundle_revision_test.cpp - private/mock/miniunz_mock.c - private/mock/manifest_mock.c - src/bundle_revision.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(bundle_revision_test ${ZLIB_LIBRARY} ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(bundle_test - private/test/bundle_test.cpp - private/mock/framework_mock.c - private/mock/module_mock.c - private/mock/bundle_archive_mock.c - private/mock/bundle_revision_mock.c - private/mock/resolver_mock.c - private/mock/version_mock.c - src/bundle.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(bundle_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(capability_test - private/test/capability_test.cpp - private/mock/attribute_mock.c - private/mock/version_mock.c - src/capability.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(capability_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(celix_errorcodes_test - private/test/celix_errorcodes_test.cpp - src/celix_errorcodes.c) - target_link_libraries(celix_errorcodes_test ${CPPUTEST_LIBRARY} Celix::utils) - - add_executable(framework_test - private/test/framework_test.cpp - #private/mock/properties_mock.c - private/mock/resolver_mock.c - private/mock/service_reference_mock.c - private/mock/service_registry_mock.c - private/mock/service_registration_mock.c - private/mock/filter_mock.c - private/mock/bundle_mock.c - private/mock/bundle_context_mock.c - private/mock/module_mock.c - private/mock/bundle_archive_mock.c - private/mock/bundle_revision_mock.c - private/mock/bundle_cache_mock.c - private/mock/manifest_mock.c - private/mock/dm_dependency_manager_mock.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c - src/framework.c) - target_link_libraries(framework_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} ${UUID} Celix::utils pthread dl) - - add_executable(manifest_parser_test - private/test/manifest_parser_test.cpp - private/mock/manifest_mock.c - private/mock/version_mock.c - private/mock/version_range_mock.c - src/attribute.c - src/capability.c - src/requirement.c - src/manifest_parser.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(manifest_parser_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(manifest_test - private/test/manifest_test.cpp - private/mock/properties_mock.c - src/manifest.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(manifest_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - -# add_executable(module_test -# private/test/module_test.cpp -# private/mock/bundle_mock.c -# private/mock/version_mock.c -# private/mock/manifest_mock.c -# private/mock/manifest_parser_mock.c -# private/mock/capability_mock.c -# private/mock/requirement_mock.c -# private/mock/wire_mock.c -# src/module.c) -# target_link_libraries(module_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(requirement_test - private/test/requirement_test.cpp - private/mock/attribute_mock.c - private/mock/capability_mock.c - private/mock/version_range_mock.c - src/requirement.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(requirement_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - -# add_executable(resolver_test -# private/test/resolver_test.cpp -# private/mock/bundle_mock.c -# private/mock/requirement_mock.c -# private/mock/capability_mock.c -# private/mock/manifest_parser_mock.c -# private/mock/version_mock.c -# src/wire.c -# src/module.c -# src/resolver.c -# src/celix_errorcodes.c -# private/mock/celix_log_mock.c) -# target_link_libraries(resolver_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(service_reference_test - private/test/service_reference_test.cpp - private/mock/properties_mock.c - private/mock/service_registration_mock.c - private/mock/service_registry_mock.c - src/service_reference.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(service_reference_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(service_registration_test - private/test/service_registration_test.cpp - private/mock/service_registry_mock.c - src/service_registration.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(service_registration_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - - add_executable(service_registry_test - private/test/service_registry_test.cpp - private/mock/framework_mock.c - private/mock/bundle_mock.c - private/mock/filter_mock.c - private/mock/service_reference_mock.c - private/mock/service_registration_mock.c - private/mock/properties_mock.c - src/service_registry.c - private/mock/module_mock.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(service_registry_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - add_executable(service_tracker_customizer_test - private/test/service_tracker_customizer_test.cpp - private/mock/service_reference_mock.c - src/service_tracker_customizer.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c) - target_link_libraries(service_tracker_customizer_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - -# add_executable(service_tracker_test -# private/test/service_tracker_test.cpp -# private/mock/bundle_context_mock.c -# private/mock/service_reference_mock.c -# private/mock/service_tracker_customizer_mock.c -# src/service_tracker.c -# src/celix_errorcodes.c -# private/mock/celix_log_mock.c) -# target_link_libraries(service_tracker_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils pthread) - - - add_executable(wire_test - private/mock/requirement_mock.c - private/mock/capability_mock.c - private/mock/module_mock.c - src/celix_errorcodes.c - private/mock/celix_log_mock.c - src/wire.c - private/test/wire_test.cpp) - target_link_libraries(wire_test ${CPPUTEST_LIBRARY} ${CPPUTEST_EXT_LIBRARY} Celix::utils) - - configure_file(private/resources-test/manifest_sections.txt ${CMAKE_BINARY_DIR}/framework/resources-test/manifest_sections.txt COPYONLY) - configure_file(private/resources-test/manifest.txt ${CMAKE_BINARY_DIR}/framework/resources-test/manifest.txt COPYONLY) - - #set_target_properties(wire_test PROPERTIES COMPILE_FLAGS "-include ${CPPUTEST_INCLUDE_DIR}/CppUTest/MemoryLeakDetectorMallocMacros.h -include ${CPPUTEST_INCLUDE_DIR}/CppUTest/MemoryLeakDetectorNewMacros.h") - - add_test(NAME attribute_test COMMAND attribute_test) -# add_test(NAME bundle_archive_test COMMAND bundle_archive_test) - add_test(NAME bundle_cache_test COMMAND bundle_cache_test) - add_test(NAME bundle_context_test COMMAND bundle_context_test) - add_test(NAME bundle_revision_test COMMAND bundle_revision_test) - add_test(NAME bundle_test COMMAND bundle_test) - add_test(NAME capability_test COMMAND capability_test) - add_test(NAME celix_errorcodes_test COMMAND celix_errorcodes_test) - add_test(NAME filter_test COMMAND filter_test) - add_test(NAME framework_test COMMAND framework_test) - add_test(NAME manifest_parser_test COMMAND manifest_parser_test) - add_test(NAME manifest_test COMMAND manifest_test) -# add_test(NAME module_test COMMAND module_test) - add_test(NAME requirement_test COMMAND requirement_test) -# add_test(NAME resolver_test COMMAND resolver_test) - add_test(NAME service_reference_test COMMAND service_reference_test) - add_test(NAME service_registration_test COMMAND service_registration_test) - add_test(NAME service_registry_test COMMAND service_registry_test) - add_test(NAME service_tracker_customizer_test COMMAND service_tracker_customizer_test) -# add_test(NAME service_tracker_test COMMAND service_tracker_test) -add_test(NAME wire_test COMMAND wire_test) - -SETUP_TARGET_FOR_COVERAGE(attribute_test attribute_test ${CMAKE_BINARY_DIR}/coverage/attribute_test/attribute_test) -# SETUP_TARGET_FOR_COVERAGE(bundle_archive_test bundle_archive_test ${CMAKE_BINARY_DIR}/coverage/bundle_archive_test/bundle_archive_test) - SETUP_TARGET_FOR_COVERAGE(bundle_cache_test bundle_cache_test ${CMAKE_BINARY_DIR}/coverage/bundle_cache_test/bundle_cache_test) - SETUP_TARGET_FOR_COVERAGE(bundle_context_test bundle_context_test ${CMAKE_BINARY_DIR}/coverage/bundle_context_test/bundle_context_test) - SETUP_TARGET_FOR_COVERAGE(bundle_revision_test bundle_revision_test ${CMAKE_BINARY_DIR}/coverage/bundle_revision_test/bundle_revision_test) - SETUP_TARGET_FOR_COVERAGE(bundle_test bundle_test ${CMAKE_BINARY_DIR}/coverage/bundle_test/bundle_test) - SETUP_TARGET_FOR_COVERAGE(capability_test capability_test ${CMAKE_BINARY_DIR}/coverage/capability_test/capability_test) - SETUP_TARGET_FOR_COVERAGE(celix_errorcodes_test celix_errorcodes_test ${CMAKE_BINARY_DIR}/coverage/celix_errorcodes_test/celix_errorcodes_test) - SETUP_TARGET_FOR_COVERAGE(filter_test filter_test ${CMAKE_BINARY_DIR}/coverage/filter_test/filter_test) - SETUP_TARGET_FOR_COVERAGE(framework_test framework_test ${CMAKE_BINARY_DIR}/coverage/framework_test/framework_test) - SETUP_TARGET_FOR_COVERAGE(manifest_parser_test manifest_parser_test ${CMAKE_BINARY_DIR}/coverage/manifest_parser_test/manifest_parser_test) - SETUP_TARGET_FOR_COVERAGE(manifest_test manifest_test ${CMAKE_BINARY_DIR}/coverage/manifest_test/manifest_test) -# SETUP_TARGET_FOR_COVERAGE(module_test module_test ${CMAKE_BINARY_DIR}/coverage/module_test/module_test) - SETUP_TARGET_FOR_COVERAGE(requirement_test requirement_test ${CMAKE_BINARY_DIR}/coverage/requirement_test/requirement_test) -# SETUP_TARGET_FOR_COVERAGE(resolver_test resolver_test ${CMAKE_BINARY_DIR}/coverage/resolver_test/resolver_test) - SETUP_TARGET_FOR_COVERAGE(service_reference_test service_reference_test ${CMAKE_BINARY_DIR}/coverage/service_reference_test/service_reference_test) - SETUP_TARGET_FOR_COVERAGE(service_registration_test service_registration_test ${CMAKE_BINARY_DIR}/coverage/service_registration_test/service_registration_test) - SETUP_TARGET_FOR_COVERAGE(service_registry_test service_registry_test ${CMAKE_BINARY_DIR}/coverage/service_registry_test/service_registry_test) - SETUP_TARGET_FOR_COVERAGE(service_tracker_customizer_test service_tracker_customizer_test ${CMAKE_BINARY_DIR}/coverage/service_tracker_customizer_test/service_tracker_customizer_test) -# SETUP_TARGET_FOR_COVERAGE(service_tracker_test service_tracker_test ${CMAKE_BINARY_DIR}/coverage/service_tracker_test/service_tracker_test) - SETUP_TARGET_FOR_COVERAGE(wire_test wire_test ${CMAKE_BINARY_DIR}/coverage/wire_test/wire_test) - -endif (ENABLE_TESTING AND FRAMEWORK_TESTS) - http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/framework/include/archive.h ---------------------------------------------------------------------- diff --git a/framework/include/archive.h b/framework/include/archive.h deleted file mode 100644 index f51b960..0000000 --- a/framework/include/archive.h +++ /dev/null @@ -1,58 +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. - */ -/** - * - * @defgroup Archive Archive - * @ingroup framework - * @{ - * - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \date May 31, 2010 - * \copyright Apache License, Version 2.0 - */ -#ifndef ARCHIVE_H_ -#define ARCHIVE_H_ - -#include "celix_errno.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Extracts the bundle pointed to by bundleName to the given root. - * - * @param bundleName location of the bundle to extract. - * @param revisionRoot directory to where the bundle must be extracted. - * - * @return Status code indication failure or success: - * - CELIX_SUCCESS when no errors are encountered. - * - CELIX_FILE_IO_EXCEPTION If the zip file cannot be extracted. - */ -celix_status_t extractBundle(const char *bundleName, const char *revisionRoot); - -#ifdef __cplusplus -} -#endif - -#endif /* ARCHIVE_H_ */ - -/** - * @} - */ http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/framework/include/bundle.h ---------------------------------------------------------------------- diff --git a/framework/include/bundle.h b/framework/include/bundle.h deleted file mode 100644 index b105615..0000000 --- a/framework/include/bundle.h +++ /dev/null @@ -1,140 +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. - */ -/* - * bundle.h - * - * \date Mar 23, 2010 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ - -#ifndef BUNDLE_H_ -#define BUNDLE_H_ - -#include "celix_types.h" - -#include "celix_errno.h" -#include "bundle_state.h" -#include "bundle_archive.h" -#include "framework.h" -#include "wire.h" -#include "module.h" -#include "service_reference.h" -#include "bundle_context.h" -#include "celix_log.h" -#include "celix_threads.h" - -#ifdef __cplusplus -extern "C" { -#endif - -FRAMEWORK_EXPORT celix_status_t bundle_create(bundle_pt *bundle); - -FRAMEWORK_EXPORT celix_status_t -bundle_createFromArchive(bundle_pt *bundle, framework_pt framework, bundle_archive_pt archive); - -FRAMEWORK_EXPORT celix_status_t bundle_destroy(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_isSystemBundle(bundle_pt bundle, bool *systemBundle); - -FRAMEWORK_EXPORT celix_status_t bundle_getArchive(bundle_pt bundle, bundle_archive_pt *archive); - -FRAMEWORK_EXPORT celix_status_t bundle_getCurrentModule(bundle_pt bundle, module_pt *module); - -FRAMEWORK_EXPORT array_list_pt bundle_getModules(bundle_pt bundle); - -FRAMEWORK_EXPORT void *bundle_getHandle(bundle_pt bundle); - -FRAMEWORK_EXPORT void bundle_setHandle(bundle_pt bundle, void *handle); - -FRAMEWORK_EXPORT activator_pt bundle_getActivator(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_setActivator(bundle_pt bundle, activator_pt activator); - -FRAMEWORK_EXPORT celix_status_t bundle_getContext(bundle_pt bundle, bundle_context_pt *context); - -FRAMEWORK_EXPORT celix_status_t bundle_setContext(bundle_pt bundle, bundle_context_pt context); - -FRAMEWORK_EXPORT celix_status_t bundle_getEntry(bundle_pt bundle, const char *name, char **entry); - -FRAMEWORK_EXPORT celix_status_t bundle_start(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_startWithOptions(bundle_pt bundle, int options); - -FRAMEWORK_EXPORT celix_status_t bundle_update(bundle_pt bundle, const char *inputFile); - -FRAMEWORK_EXPORT celix_status_t bundle_stop(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_stopWithOptions(bundle_pt bundle, int options); - -FRAMEWORK_EXPORT celix_status_t bundle_uninstall(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_setState(bundle_pt bundle, bundle_state_e state); - -FRAMEWORK_EXPORT celix_status_t bundle_setPersistentStateInactive(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_setPersistentStateUninstalled(bundle_pt bundle); - -FRAMEWORK_EXPORT void uninstallBundle(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_revise(bundle_pt bundle, const char *location, const char *inputFile); - -FRAMEWORK_EXPORT celix_status_t bundle_addModule(bundle_pt bundle, module_pt module); - -FRAMEWORK_EXPORT celix_status_t bundle_closeModules(bundle_pt bundle); - -// Service Reference Functions -FRAMEWORK_EXPORT array_list_pt getUsingBundles(service_reference_pt reference); - -FRAMEWORK_EXPORT int compareTo(service_reference_pt a, service_reference_pt b); - -FRAMEWORK_EXPORT celix_status_t bundle_getState(bundle_pt bundle, bundle_state_e *state); - -FRAMEWORK_EXPORT celix_status_t bundle_isLockable(bundle_pt bundle, bool *lockable); - -FRAMEWORK_EXPORT celix_status_t bundle_getLockingThread(bundle_pt bundle, celix_thread_t *thread); - -FRAMEWORK_EXPORT celix_status_t bundle_lock(bundle_pt bundle, bool *locked); - -FRAMEWORK_EXPORT celix_status_t bundle_unlock(bundle_pt bundle, bool *unlocked); - -FRAMEWORK_EXPORT celix_status_t bundle_closeAndDelete(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_close(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_refresh(bundle_pt bundle); - -FRAMEWORK_EXPORT celix_status_t bundle_getBundleId(bundle_pt bundle, long *id); - -FRAMEWORK_EXPORT celix_status_t bundle_getRegisteredServices(bundle_pt bundle, array_list_pt *list); - -FRAMEWORK_EXPORT celix_status_t bundle_getServicesInUse(bundle_pt bundle, array_list_pt *list); - -FRAMEWORK_EXPORT celix_status_t bundle_setFramework(bundle_pt bundle, framework_pt framework); - -FRAMEWORK_EXPORT celix_status_t bundle_getFramework(bundle_pt bundle, framework_pt *framework); - -FRAMEWORK_EXPORT celix_status_t bundle_getBundleLocation(bundle_pt bundle, const char **location); - - -#ifdef __cplusplus -} -#endif - -#endif /* BUNDLE_H_ */ http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/framework/include/bundle_activator.h ---------------------------------------------------------------------- diff --git a/framework/include/bundle_activator.h b/framework/include/bundle_activator.h deleted file mode 100644 index 8c91957..0000000 --- a/framework/include/bundle_activator.h +++ /dev/null @@ -1,127 +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. - */ -/** - * - * @defgroup BundleActivator BundleActivator - * @ingroup framework - * @{ - * \brief Customizes the starting and stopping of a bundle. - * \details \ref BundleActivator is a header that must be implemented by every - * bundle. The Framework creates/starts/stops/destroys activator instances using the - * functions described in this header. If the bundleActivator_start() - * function executes successfully, it is guaranteed that the same instance's - * bundleActivator_stop() function will be called when the bundle is - * to be stopped. The same applies to the bundleActivator_create() and - * bundleActivator_destroy() functions. - * The Framework must not concurrently call the activator functions. - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \date March 18, 2010 - * \copyright Apache License, Version 2.0 - */ -#ifndef BUNDLE_ACTIVATOR_H_ -#define BUNDLE_ACTIVATOR_H_ - -#include "bundle_context.h" -#include "celix_bundle_context.h" -#include "framework_exports.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Called when this bundle is started so the bundle can create an instance for its activator. - * The framework does not assume any type for the activator instance, this is implementation specific. - * The activator instance is handle as a void pointer by the framework, the implementation must cast it to the - * implementation specific type. - * - * @param context The execution context of the bundle being started. - * @param[out] userData A pointer to the specific activator instance used by this bundle. - * - * @return Status code indication failure or success: - * - CELIX_SUCCESS when no errors are encountered. - * - Any other status code will mark the bundle as stopped and the framework will remove this - * bundle's listeners, unregister all services, and release all services used by this bundle. - */ -ACTIVATOR_EXPORT celix_status_t bundleActivator_create(bundle_context_t *context_ptr, void **userData); - -/** - * Called when this bundle is started so the Framework can perform the bundle-specific activities necessary - * to start this bundle. This method can be used to register services or to allocate any resources that this - * bundle needs. - * - * <p> - * This method must complete and return to its caller in a timely manner. - * - * @param userData The activator instance to be used. - * @param context The execution context of the bundle being started. - * - * @return Status code indication failure or success: - * - CELIX_SUCCESS when no errors are encountered. - * - Any other status code will mark the bundle as stopped and the framework will remove this - * bundle's listeners, unregister all services, and release all services used by this bundle. - */ -ACTIVATOR_EXPORT celix_status_t bundleActivator_start(void *userData, bundle_context_t *context); - -/** - * Called when this bundle is stopped so the Framework can perform the bundle-specific activities necessary - * to stop the bundle. In general, this method should undo the work that the <code>bundleActivator_start()</code> - * function started. There should be no active threads that were started by this bundle when this bundle returns. - * A stopped bundle must not call any Framework objects. - * - * <p> - * This method must complete and return to its caller in a timely manner. - * - * @param userData The activator instance to be used. - * @param context The execution context of the bundle being stopped. - * - * @return Status code indication failure or success: - * - CELIX_SUCCESS when no errors are encountered. - * - Any other status code will mark the bundle as stopped and the framework will remove this - * bundle's listeners, unregister all services, and release all services used by this bundle. - */ -ACTIVATOR_EXPORT celix_status_t bundleActivator_stop(void *userData, bundle_context_t *context); - -/** - * Called when this bundle is stopped so the bundle can destroy the instance of its activator. In general, this - * method should undo the work that the <code>bundleActivator_create()</code> function initialized. - * - * <p> - * This method must complete and return to its caller in a timely manner. - * - * @param userData The activator instance to be used. - * @param context The execution context of the bundle being stopped. - * - * @return Status code indication failure or success: - * - CELIX_SUCCESS when no errors are encountered. - * - Any other status code will mark the bundle as stopped and the framework will remove this - * bundle's listeners, unregister all services, and release all services used by this bundle. - */ -ACTIVATOR_EXPORT celix_status_t -bundleActivator_destroy(void *userData, bundle_context_t* context); - -#ifdef __cplusplus -} -#endif - -#endif /* BUNDLE_ACTIVATOR_H_ */ - -/** - * @} - */ http://git-wip-us.apache.org/repos/asf/celix/blob/3bce889b/framework/include/bundle_archive.h ---------------------------------------------------------------------- diff --git a/framework/include/bundle_archive.h b/framework/include/bundle_archive.h deleted file mode 100644 index 1a9b2c4..0000000 --- a/framework/include/bundle_archive.h +++ /dev/null @@ -1,93 +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. - */ -/* - * bundle_archive.h - * - * \date Aug 8, 2010 - * \author <a href="mailto:d...@celix.apache.org">Apache Celix Project Team</a> - * \copyright Apache License, Version 2.0 - */ - -#ifndef BUNDLE_ARCHIVE_H_ -#define BUNDLE_ARCHIVE_H_ - -#include "celix_types.h" - -#include <time.h> - -#include "bundle_revision.h" -#include "bundle_state.h" -#include "celix_errno.h" -#include "celixbool.h" -#include "framework_exports.h" -#include "celix_log.h" - -#ifdef __cplusplus -extern "C" { -#endif - -celix_status_t bundleArchive_create(const char *archiveRoot, long id, const char *location, const char *inputFile, - bundle_archive_pt *bundle_archive); - -celix_status_t bundleArchive_createSystemBundleArchive(bundle_archive_pt *bundle_archive); - -celix_status_t bundleArchive_recreate(const char *archiveRoot, bundle_archive_pt *bundle_archive); - -celix_status_t bundleArchive_destroy(bundle_archive_pt archive); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_getId(bundle_archive_pt archive, long *id); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_getLocation(bundle_archive_pt archive, const char **location); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_getArchiveRoot(bundle_archive_pt archive, const char **archiveRoot); - -FRAMEWORK_EXPORT celix_status_t -bundleArchive_revise(bundle_archive_pt archive, const char *location, const char *inputFile); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_rollbackRevise(bundle_archive_pt archive, bool *rolledback); - -FRAMEWORK_EXPORT celix_status_t -bundleArchive_getRevision(bundle_archive_pt archive, long revNr, bundle_revision_pt *revision); - -FRAMEWORK_EXPORT celix_status_t -bundleArchive_getCurrentRevision(bundle_archive_pt archive, bundle_revision_pt *revision); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_getCurrentRevisionNumber(bundle_archive_pt archive, long *revisionNumber); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_getRefreshCount(bundle_archive_pt archive, long *refreshCount); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_setRefreshCount(bundle_archive_pt archive); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_close(bundle_archive_pt archive); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_closeAndDelete(bundle_archive_pt archive); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_setLastModified(bundle_archive_pt archive, time_t lastModifiedTime); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_getLastModified(bundle_archive_pt archive, time_t *lastModified); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_setPersistentState(bundle_archive_pt archive, bundle_state_e state); - -FRAMEWORK_EXPORT celix_status_t bundleArchive_getPersistentState(bundle_archive_pt archive, bundle_state_e *state); - -#ifdef __cplusplus -} -#endif - -#endif /* BUNDLE_ARCHIVE_H_ */