Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id CE888200D44 for ; Mon, 20 Nov 2017 21:33:04 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id CD492160C0D; Mon, 20 Nov 2017 20:33:04 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 39E65160BF9 for ; Mon, 20 Nov 2017 21:33:02 +0100 (CET) Received: (qmail 60688 invoked by uid 500); 20 Nov 2017 20:33:01 -0000 Mailing-List: contact commits-help@celix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@celix.apache.org Delivered-To: mailing list commits@celix.apache.org Received: (qmail 59578 invoked by uid 99); 20 Nov 2017 20:32:59 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 20 Nov 2017 20:32:59 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id CF7BEF5F85; Mon, 20 Nov 2017 20:32:58 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: pnoltes@apache.org To: commits@celix.apache.org Date: Mon, 20 Nov 2017 20:33:25 -0000 Message-Id: <65bc5a6aa9d0413b9766b51247f7405f@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [28/46] celix git commit: CELIX-417: Initial refactoring for CMake usage archived-at: Mon, 20 Nov 2017 20:33:05 -0000 http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/dm_example_cxx/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example_cxx/CMakeLists.txt b/examples/dm_example_cxx/CMakeLists.txt index 9572142..1a47113 100644 --- a/examples/dm_example_cxx/CMakeLists.txt +++ b/examples/dm_example_cxx/CMakeLists.txt @@ -19,7 +19,6 @@ if (BUILD_DEPENDENCY_MANAGER_CXX) ${PROJECT_SOURCE_DIR}/dependency_manager/public/include ${PROJECT_SOURCE_DIR}/dependency_manager_cxx/include ${PROJECT_SOURCE_DIR}/utils/public/include - ${PROJECT_SOURCE_DIR}/shell/public/include ${PROJECT_SOURCE_DIR}/log_service/public/include api ) @@ -33,10 +32,10 @@ if (BUILD_DEPENDENCY_MANAGER_CXX) add_deploy("dm_example_cxx" COPY - CXX + CXX BUNDLES - shell - shell_tui + Celix::shell + Celix::shell_tui dm_shell log_service log_writer @@ -56,7 +55,7 @@ if (BUILD_DEPENDENCY_MANAGER_CXX) BUNDLES_DIR /usr/share/bundles WORKDIR /workspace BUNDLES - shell + celix_shell shell_tui dm_shell log_service http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/dm_example_cxx/phase1/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example_cxx/phase1/CMakeLists.txt b/examples/dm_example_cxx/phase1/CMakeLists.txt index 3c0544a..728278b 100644 --- a/examples/dm_example_cxx/phase1/CMakeLists.txt +++ b/examples/dm_example_cxx/phase1/CMakeLists.txt @@ -31,12 +31,12 @@ add_bundle(phase1_cxx target_compile_options(phase1_cxx PUBLIC -Wall -Wextra -Weffc++ -Werror) IF(APPLE) - target_link_libraries(phase1_cxx celix_framework -Wl,-all_load dependency_manager_cxx_static) + target_link_libraries(phase1_cxx PRIVATE -Wl,-all_load dependency_manager_cxx_static Celix::shell_api) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(phase1_cxx -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase1_cxx -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive Celix::shell_api) else() - target_link_libraries(phase1_cxx -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase1_cxx -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive Celix::shell_api) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/dm_example_cxx/phase2a/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example_cxx/phase2a/CMakeLists.txt b/examples/dm_example_cxx/phase2a/CMakeLists.txt index 8528078..4e2e673 100644 --- a/examples/dm_example_cxx/phase2a/CMakeLists.txt +++ b/examples/dm_example_cxx/phase2a/CMakeLists.txt @@ -14,12 +14,6 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. - -include_directories( - ../phase2/include - ../api -) - add_bundle(phase2a_cxx SYMBOLIC_NAME phase2a_cxx VERSION 0.0.1 @@ -28,15 +22,20 @@ add_bundle(phase2a_cxx src/Phase2aCmp.cc ) -target_compile_options(phase2a_cxx PUBLIC -Wall -Wextra -Weffc++ -Werror) +target_include_directories(phase2a_cxx PRIVATE + ../phase2/include + ../api +) + +target_link_libraries(phase2a_cxx PRIVATE Celix::log_service_api) IF(APPLE) - target_link_libraries(phase2a_cxx celix_framework -Wl,-all_load dependency_manager_cxx_static) + target_link_libraries(phase2a_cxx PRIVATE -Wl,-all_load Celix::dependency_manager_cxx_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(phase2a_cxx -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase2a_cxx PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive) else() - target_link_libraries(phase2a_cxx -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase2a_cxx PRIVATE -Wl,--no-undefined -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/dm_example_cxx/phase2b/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example_cxx/phase2b/CMakeLists.txt b/examples/dm_example_cxx/phase2b/CMakeLists.txt index 29ff664..cfbda7c 100644 --- a/examples/dm_example_cxx/phase2b/CMakeLists.txt +++ b/examples/dm_example_cxx/phase2b/CMakeLists.txt @@ -15,12 +15,6 @@ # specific language governing permissions and limitations # under the License. -include_directories( - ../phase2/include - include - ../api -) - add_bundle(phase2b_cxx SYMBOLIC_NAME phase2b_cxx VERSION 0.0.1 @@ -28,16 +22,18 @@ add_bundle(phase2b_cxx src/Phase2bActivator.cc src/Phase2bCmp.cc ) +target_link_libraries(phase2b_cxx PRIVATE Celix::log_service_api) +target_include_directories(phase2b_cxx PRIVATE ../api ../phase2/include) + -target_compile_options(phase2b_cxx PUBLIC -Wall -Wextra -Weffc++ -Werror) IF(APPLE) - target_link_libraries(phase2b_cxx celix_framework -Wl,-all_load dependency_manager_cxx_static) + target_link_libraries(phase2b_cxx PRIVATE -Wl,-all_load Celix::dependency_manager_cxx_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(phase2b_cxx -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase2b_cxx PRIVATE -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive) else() - target_link_libraries(phase2b_cxx -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase2b_cxx PRIVATE -Wl,--no-undefined -Wl,--whole-archive Celix::dependency_manager_cxx_static -Wl,--no-whole-archive) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/dm_example_cxx/phase3/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example_cxx/phase3/CMakeLists.txt b/examples/dm_example_cxx/phase3/CMakeLists.txt index 99c3a5b..a0f6973 100644 --- a/examples/dm_example_cxx/phase3/CMakeLists.txt +++ b/examples/dm_example_cxx/phase3/CMakeLists.txt @@ -32,12 +32,12 @@ add_bundle(phase3_cxx target_compile_options(phase3_cxx PUBLIC -Wall -Wextra -Weffc++ -Werror) IF(APPLE) - target_link_libraries(phase3_cxx celix_framework -Wl,-all_load dependency_manager_cxx_static) + target_link_libraries(phase3_cxx PRIVATE -Wl,-all_load dependency_manager_cxx_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(phase3_cxx -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase3_cxx PRIVATE -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) else() - target_link_libraries(phase3_cxx -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase3_cxx PRIVATE -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/dm_example_cxx/phase3_locking/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/dm_example_cxx/phase3_locking/CMakeLists.txt b/examples/dm_example_cxx/phase3_locking/CMakeLists.txt index 07c9b54..956f6e1 100644 --- a/examples/dm_example_cxx/phase3_locking/CMakeLists.txt +++ b/examples/dm_example_cxx/phase3_locking/CMakeLists.txt @@ -31,12 +31,12 @@ add_bundle(phase3_locking_cxx target_compile_options(phase3_locking_cxx PUBLIC -Wall -Wextra -Weffc++ -Werror) IF(APPLE) - target_link_libraries(phase3_locking_cxx celix_framework -Wl,-all_load dependency_manager_cxx_static) + target_link_libraries(phase3_locking_cxx PRIVATE -Wl,-all_load dependency_manager_cxx_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(phase3_locking_cxx -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase3_locking_cxx PRIVATE -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) else() - target_link_libraries(phase3_locking_cxx -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(phase3_locking_cxx PRIVATE -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/embedding/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/embedding/CMakeLists.txt b/examples/embedding/CMakeLists.txt index c7475e7..e39433a 100644 --- a/examples/embedding/CMakeLists.txt +++ b/examples/embedding/CMakeLists.txt @@ -18,4 +18,4 @@ add_executable(embedding private/src/main) include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -target_link_libraries(embedding celix_framework) \ No newline at end of file +target_link_libraries(embedding Celix::framework ) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/hello_world/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/hello_world/CMakeLists.txt b/examples/hello_world/CMakeLists.txt index 0ed7ed6..7cb590f 100644 --- a/examples/hello_world/CMakeLists.txt +++ b/examples/hello_world/CMakeLists.txt @@ -51,13 +51,13 @@ bundle_private_libs(hello add_deploy(helloworld_byref GROUP hello - BUNDLES hello_export hello shell shell_tui + BUNDLES hello_export hello ${CELIX_SHELL_BUNDLE} ${CELIX_SHELL_TUI_BUNDLE} ) add_deploy(helloworld_withcopy GROUP hello COPY #Ensures that bundles are copied in the deploy location - BUNDLES hello_export hello shell shell_tui + BUNDLES hello_export hello ${SHELL_BUNDLE} ${SHELL_TUI_BUNDLE} ) endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/hello_world_test/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/hello_world_test/CMakeLists.txt b/examples/hello_world_test/CMakeLists.txt index 39198ed..08053e5 100644 --- a/examples/hello_world_test/CMakeLists.txt +++ b/examples/hello_world_test/CMakeLists.txt @@ -19,15 +19,18 @@ ## NOTE Examples of using add_bundle and add_deploy and assorted commands ## ############################################################################# -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories(public/include) - add_bundle(hellotest1 VERSION "1.2" SOURCES private/src/activator ) +target_include_directories(hellotest1 PRIVATE + ${PROJECT_SOURCE_DIR}/utils/public/include + public/include +) + + bundle_headers(hellotest1 "X-WebContent: web" "X-MediaType: application/json" @@ -72,6 +75,7 @@ add_library(hello2act SHARED private/src/activator ) set_library_version(hello2act "3.2.4") #sets VERSION prop to 3.2.4 and SOVERSION to 3 +target_link_libraries(hello2act PRIVATE Celix::framework ) add_bundle(hellotest2 VERSION "1.0.0" #can be the same as activator lib, but does not have to be ACTIVATOR hello2act http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/log_service_example/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/log_service_example/CMakeLists.txt b/examples/log_service_example/CMakeLists.txt index 6b7e681..0363da3 100644 --- a/examples/log_service_example/CMakeLists.txt +++ b/examples/log_service_example/CMakeLists.txt @@ -17,20 +17,15 @@ #Importing and exporting libraries not (yet) work under OSX. -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories("public/include") -include_directories("${CMAKE_SOURCE_DIR}/log_service/public/include") - add_bundle(log_service_example VERSION "1.0" SOURCES - private/src/activator.c - ${CMAKE_SOURCE_DIR}/log_service/public/src/log_helper.c + src/activator.c ) +target_include_directories(log_service_example PRIVATE src) +target_link_libraries(log_service_example PRIVATE Celix::log_service_api Celix::log_helper) add_deploy(log_example GROUP log_service - BUNDLES log_service_example log_service shell shell_tui -) - -target_link_libraries(log_service_example celix_framework celix_utils) \ No newline at end of file + BUNDLES log_service_example Celix::log_service Celix::shell Celix::shell_tui +) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/log_service_example/private/src/activator.c ---------------------------------------------------------------------- diff --git a/examples/log_service_example/private/src/activator.c b/examples/log_service_example/private/src/activator.c deleted file mode 100644 index 75eaf59..0000000 --- a/examples/log_service_example/private/src/activator.c +++ /dev/null @@ -1,85 +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 - * - * \date Sep 11, 2017 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ -#include -#include -#include -#include "bundle_activator.h" -#include "log_helper.h" - -struct userData { - pthread_t logger_thread; - bool running; - log_helper_pt log_helper; -}; - -static void *loggerThread(void *userData); - -celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) { - celix_status_t status = CELIX_SUCCESS; - *userData = calloc(1, sizeof(struct userData)); - if (*userData != NULL) { - struct userData * data = (struct userData *) *userData; - status = logHelper_create(context, &data->log_helper); - } else { - status = CELIX_START_ERROR; - } - return status; -} - - -celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) { - struct userData * data = (struct userData *) userData; - printf("Started log example\n"); - logHelper_start(data->log_helper); - data->running = true; - pthread_create(&data->logger_thread, NULL, loggerThread, data); - return CELIX_SUCCESS; -} - -celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) { - struct userData * data = (struct userData *) userData; - printf("Stopping logger example\n"); - data->running = false; - pthread_join(data->logger_thread, NULL); - logHelper_stop(data->log_helper); - return CELIX_SUCCESS; -} - -celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) { - struct userData * data = (struct userData *) userData; - logHelper_destroy(&data->log_helper); - free(userData); - return CELIX_SUCCESS; -} - -static void *loggerThread(void *userData) { - struct userData * data = (struct userData *) userData; - while (data->running) { - logHelper_log(data->log_helper, OSGI_LOGSERVICE_INFO, "My log message"); - sleep(1); - } - return NULL; -} http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/log_service_example/src/activator.c ---------------------------------------------------------------------- diff --git a/examples/log_service_example/src/activator.c b/examples/log_service_example/src/activator.c new file mode 100644 index 0000000..75eaf59 --- /dev/null +++ b/examples/log_service_example/src/activator.c @@ -0,0 +1,85 @@ +/** + *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 + * + * \date Sep 11, 2017 + * \author Apache Celix Project Team + * \copyright Apache License, Version 2.0 + */ +#include +#include +#include +#include "bundle_activator.h" +#include "log_helper.h" + +struct userData { + pthread_t logger_thread; + bool running; + log_helper_pt log_helper; +}; + +static void *loggerThread(void *userData); + +celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) { + celix_status_t status = CELIX_SUCCESS; + *userData = calloc(1, sizeof(struct userData)); + if (*userData != NULL) { + struct userData * data = (struct userData *) *userData; + status = logHelper_create(context, &data->log_helper); + } else { + status = CELIX_START_ERROR; + } + return status; +} + + +celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) { + struct userData * data = (struct userData *) userData; + printf("Started log example\n"); + logHelper_start(data->log_helper); + data->running = true; + pthread_create(&data->logger_thread, NULL, loggerThread, data); + return CELIX_SUCCESS; +} + +celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) { + struct userData * data = (struct userData *) userData; + printf("Stopping logger example\n"); + data->running = false; + pthread_join(data->logger_thread, NULL); + logHelper_stop(data->log_helper); + return CELIX_SUCCESS; +} + +celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) { + struct userData * data = (struct userData *) userData; + logHelper_destroy(&data->log_helper); + free(userData); + return CELIX_SUCCESS; +} + +static void *loggerThread(void *userData) { + struct userData * data = (struct userData *) userData; + while (data->running) { + logHelper_log(data->log_helper, OSGI_LOGSERVICE_INFO, "My log message"); + sleep(1); + } + return NULL; +} http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/mongoose/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/mongoose/CMakeLists.txt b/examples/mongoose/CMakeLists.txt index f4250ef..118d923 100644 --- a/examples/mongoose/CMakeLists.txt +++ b/examples/mongoose/CMakeLists.txt @@ -37,6 +37,6 @@ add_bundle(mongoose bundle_files(mongoose ${CMAKE_CURRENT_LIST_DIR}/root) -target_link_libraries(mongoose celix_framework mongooselib ${LIBS}) +target_link_libraries(mongoose PRIVATE mongooselib ${LIBS}) -add_deploy("mongoose_deploy" BUNDLES shell shell_tui log_service mongoose) +add_deploy("mongoose_deploy" BUNDLES Celix::shell Celix::shell_tui log_service mongoose) http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/service_hook_example/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/service_hook_example/CMakeLists.txt b/examples/service_hook_example/CMakeLists.txt index 8835a85..99e9b2a 100644 --- a/examples/service_hook_example/CMakeLists.txt +++ b/examples/service_hook_example/CMakeLists.txt @@ -15,23 +15,16 @@ # specific language governing permissions and limitations # under the License. -if(NOT APPLE) -#Importing and exporting libraries not (yet) work under OSX. - -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories("public/include") - add_bundle(hook_example - BUNDLE_SYMBOLICNAME "Hook_Example" - VERSION "1.0.0" - SOURCES - private/src/activator + BUNDLE_SYMBOLICNAME "Hook_Example" + VERSION "1.0.0" + SOURCES + src/activator ) -add_deploy("hook_service_example" - BUNDLES - shell - shell_tui - hook_example -) -endif() +add_deploy(hook_service_example + BUNDLES + Celix::shell + Celix::shell_tui + hook_example +) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/service_hook_example/private/src/activator.c ---------------------------------------------------------------------- diff --git a/examples/service_hook_example/private/src/activator.c b/examples/service_hook_example/private/src/activator.c deleted file mode 100644 index f2d2a15..0000000 --- a/examples/service_hook_example/private/src/activator.c +++ /dev/null @@ -1,137 +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 - * - * \date Aug 20, 2010 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ -#include -#include -#include - -#include "bundle_activator.h" -#include "service_tracker_customizer.h" -#include "service_tracker.h" -#include "bundle_context.h" -#include "listener_hook_service.h" -#include "service_registry.h" - -struct userData { - service_registration_pt hookReg; - service_tracker_pt trackerBefore; - service_tracker_pt trackerAfter; - listener_hook_service_pt hookService; -}; - - -celix_status_t tracker_added(void*hook, array_list_pt listeners) { - for(unsigned int i = 0; i < arrayList_size(listeners); i++) { - listener_hook_info_pt info = arrayList_get(listeners, i); - printf("Added tracker for service %s\n", info->filter); - } - - return CELIX_SUCCESS; -} - -celix_status_t tracker_removed(void*hook, array_list_pt listeners) { - for(unsigned int i = 0; i < arrayList_size(listeners); i++) { - listener_hook_info_pt info = arrayList_get(listeners, i); - printf("Removed tracker for service %s\n", info->filter); - } - - return CELIX_SUCCESS; -} - -celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) { - celix_status_t status = CELIX_SUCCESS; - *userData = malloc(sizeof(struct userData)); - if (*userData != NULL) { - - } else { - status = CELIX_START_ERROR; - } - return status; -} - -celix_status_t bundleActivator_start(void * handle, bundle_context_pt context) { - printf("Starting hook example bundle\n"); - struct userData *userData = (struct userData*)handle; - - userData->trackerBefore = 0; - serviceTracker_create(context, "MY_SERVICE_BEFORE_REGISTERING_HOOK", NULL, &userData->trackerBefore); - serviceTracker_open(userData->trackerBefore); - - listener_hook_service_pt hookService = calloc(1, sizeof(*hookService)); - hookService->handle = userData; - hookService->added = tracker_added; - hookService->removed = tracker_removed; - - userData->hookService = hookService; - userData->hookReg = NULL; - - printf("Registering hook service\n"); - bundleContext_registerService(context, OSGI_FRAMEWORK_LISTENER_HOOK_SERVICE_NAME, hookService, NULL, &userData->hookReg); - - printf("Unregistering hook service\n"); - serviceRegistration_unregister(userData->hookReg); - - printf("Re-Registering hook service\n"); - userData->hookReg = NULL; - bundleContext_registerService(context, OSGI_FRAMEWORK_LISTENER_HOOK_SERVICE_NAME, hookService, NULL, &userData->hookReg); - - userData->trackerAfter = 0; - serviceTracker_create(context, "MY_SERVICE_AFTER_REGISTERING_HOOK", NULL, &userData->trackerAfter); - serviceTracker_open(userData->trackerAfter); - - sleep(1); - printf("Closing tracker\n"); - serviceTracker_close(userData->trackerAfter); - printf("Reopening tracker\n"); - serviceTracker_open(userData->trackerAfter); - - sleep(1); - printf("Closing tracker\n"); - serviceTracker_close(userData->trackerAfter); - printf("Reopening tracker\n"); - serviceTracker_open(userData->trackerAfter); - - return CELIX_SUCCESS; -} - -celix_status_t bundleActivator_stop(void * handle, bundle_context_pt context) { - printf("Stopping hook example bundle\n"); - struct userData *userData = (struct userData*)handle; - - serviceTracker_close(userData->trackerAfter); - serviceTracker_close(userData->trackerBefore); - serviceTracker_destroy(userData->trackerAfter); - serviceTracker_destroy(userData->trackerBefore); - - serviceRegistration_unregister(userData->hookReg); - free(userData->hookService); - - return CELIX_SUCCESS; -} - -celix_status_t bundleActivator_destroy(void * handle, bundle_context_pt context) { - free(handle); - return CELIX_SUCCESS; -} http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/service_hook_example/src/activator.c ---------------------------------------------------------------------- diff --git a/examples/service_hook_example/src/activator.c b/examples/service_hook_example/src/activator.c new file mode 100644 index 0000000..f2d2a15 --- /dev/null +++ b/examples/service_hook_example/src/activator.c @@ -0,0 +1,137 @@ +/** + *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 + * + * \date Aug 20, 2010 + * \author Apache Celix Project Team + * \copyright Apache License, Version 2.0 + */ +#include +#include +#include + +#include "bundle_activator.h" +#include "service_tracker_customizer.h" +#include "service_tracker.h" +#include "bundle_context.h" +#include "listener_hook_service.h" +#include "service_registry.h" + +struct userData { + service_registration_pt hookReg; + service_tracker_pt trackerBefore; + service_tracker_pt trackerAfter; + listener_hook_service_pt hookService; +}; + + +celix_status_t tracker_added(void*hook, array_list_pt listeners) { + for(unsigned int i = 0; i < arrayList_size(listeners); i++) { + listener_hook_info_pt info = arrayList_get(listeners, i); + printf("Added tracker for service %s\n", info->filter); + } + + return CELIX_SUCCESS; +} + +celix_status_t tracker_removed(void*hook, array_list_pt listeners) { + for(unsigned int i = 0; i < arrayList_size(listeners); i++) { + listener_hook_info_pt info = arrayList_get(listeners, i); + printf("Removed tracker for service %s\n", info->filter); + } + + return CELIX_SUCCESS; +} + +celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) { + celix_status_t status = CELIX_SUCCESS; + *userData = malloc(sizeof(struct userData)); + if (*userData != NULL) { + + } else { + status = CELIX_START_ERROR; + } + return status; +} + +celix_status_t bundleActivator_start(void * handle, bundle_context_pt context) { + printf("Starting hook example bundle\n"); + struct userData *userData = (struct userData*)handle; + + userData->trackerBefore = 0; + serviceTracker_create(context, "MY_SERVICE_BEFORE_REGISTERING_HOOK", NULL, &userData->trackerBefore); + serviceTracker_open(userData->trackerBefore); + + listener_hook_service_pt hookService = calloc(1, sizeof(*hookService)); + hookService->handle = userData; + hookService->added = tracker_added; + hookService->removed = tracker_removed; + + userData->hookService = hookService; + userData->hookReg = NULL; + + printf("Registering hook service\n"); + bundleContext_registerService(context, OSGI_FRAMEWORK_LISTENER_HOOK_SERVICE_NAME, hookService, NULL, &userData->hookReg); + + printf("Unregistering hook service\n"); + serviceRegistration_unregister(userData->hookReg); + + printf("Re-Registering hook service\n"); + userData->hookReg = NULL; + bundleContext_registerService(context, OSGI_FRAMEWORK_LISTENER_HOOK_SERVICE_NAME, hookService, NULL, &userData->hookReg); + + userData->trackerAfter = 0; + serviceTracker_create(context, "MY_SERVICE_AFTER_REGISTERING_HOOK", NULL, &userData->trackerAfter); + serviceTracker_open(userData->trackerAfter); + + sleep(1); + printf("Closing tracker\n"); + serviceTracker_close(userData->trackerAfter); + printf("Reopening tracker\n"); + serviceTracker_open(userData->trackerAfter); + + sleep(1); + printf("Closing tracker\n"); + serviceTracker_close(userData->trackerAfter); + printf("Reopening tracker\n"); + serviceTracker_open(userData->trackerAfter); + + return CELIX_SUCCESS; +} + +celix_status_t bundleActivator_stop(void * handle, bundle_context_pt context) { + printf("Stopping hook example bundle\n"); + struct userData *userData = (struct userData*)handle; + + serviceTracker_close(userData->trackerAfter); + serviceTracker_close(userData->trackerBefore); + serviceTracker_destroy(userData->trackerAfter); + serviceTracker_destroy(userData->trackerBefore); + + serviceRegistration_unregister(userData->hookReg); + free(userData->hookService); + + return CELIX_SUCCESS; +} + +celix_status_t bundleActivator_destroy(void * handle, bundle_context_pt context) { + free(handle); + return CELIX_SUCCESS; +} http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/services_example_c/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/services_example_c/CMakeLists.txt b/examples/services_example_c/CMakeLists.txt index f6a5066..540399d 100644 --- a/examples/services_example_c/CMakeLists.txt +++ b/examples/services_example_c/CMakeLists.txt @@ -30,8 +30,8 @@ if (BUILD_DEPENDENCY_MANAGER) GROUP services_example COPY BUNDLES - shell - shell_tui + Celix::shell + Celix::shell_tui dm_shell bar foo1 http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/services_example_c/bar/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/services_example_c/bar/CMakeLists.txt b/examples/services_example_c/bar/CMakeLists.txt index 7ebb45c..2332931 100644 --- a/examples/services_example_c/bar/CMakeLists.txt +++ b/examples/services_example_c/bar/CMakeLists.txt @@ -28,12 +28,12 @@ add_bundle(bar ) IF(APPLE) - target_link_libraries(bar celix_framework -Wl,-all_load dependency_manager_static) + target_link_libraries(bar PRIVATE Celix::framework -Wl,-all_load dependency_manager_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(bar -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(bar -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive Celix::framework ) else() - target_link_libraries(bar -Wl,--no-undefined -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(bar -Wl,--no-undefined -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive Celix::framework ) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/services_example_c/foo1/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/services_example_c/foo1/CMakeLists.txt b/examples/services_example_c/foo1/CMakeLists.txt index 0d1b93c..d95546c 100644 --- a/examples/services_example_c/foo1/CMakeLists.txt +++ b/examples/services_example_c/foo1/CMakeLists.txt @@ -28,12 +28,12 @@ add_bundle(foo1 ) IF(APPLE) - target_link_libraries(foo1 celix_framework -Wl,-all_load dependency_manager_static) + target_link_libraries(foo1 PRIVATE -Wl,-all_load dependency_manager_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(foo1 -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(foo1 PRIVATE -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive) else() - target_link_libraries(foo1 -Wl,--no-undefined -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(foo1 PRIVATE -Wl,--no-undefined -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/services_example_c/foo2/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/services_example_c/foo2/CMakeLists.txt b/examples/services_example_c/foo2/CMakeLists.txt index 1096c6c..b28e96c 100644 --- a/examples/services_example_c/foo2/CMakeLists.txt +++ b/examples/services_example_c/foo2/CMakeLists.txt @@ -28,12 +28,12 @@ add_bundle(foo2 ) IF(APPLE) - target_link_libraries(foo2 celix_framework -Wl,-all_load dependency_manager_static) + target_link_libraries(foo2 PRIVATE -Wl,-all_load dependency_manager_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(foo2 -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(foo2 PRIVATE -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive) else() - target_link_libraries(foo2 -Wl,--no-undefined -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(foo2 PRIVATE -Wl,--no-undefined -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/services_example_cxx/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/services_example_cxx/CMakeLists.txt b/examples/services_example_cxx/CMakeLists.txt index 6f45ef7..0d4e732 100644 --- a/examples/services_example_cxx/CMakeLists.txt +++ b/examples/services_example_cxx/CMakeLists.txt @@ -30,8 +30,8 @@ if (BUILD_DEPENDENCY_MANAGER_CXX) GROUP services_example COPY BUNDLES - shell - shell_tui + Celix::shell + Celix::shell_tui dm_shell bar_cxx foo_cxx http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/services_example_cxx/bar/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/services_example_cxx/bar/CMakeLists.txt b/examples/services_example_cxx/bar/CMakeLists.txt index b3cdb07..ae91605 100644 --- a/examples/services_example_cxx/bar/CMakeLists.txt +++ b/examples/services_example_cxx/bar/CMakeLists.txt @@ -30,12 +30,12 @@ add_bundle(bar_cxx target_compile_options(bar_cxx PUBLIC -Wall -Wextra -Weffc++ -Werror) IF(APPLE) - target_link_libraries(bar_cxx celix_framework -Wl,-all_load dependency_manager_cxx_static) + target_link_libraries(bar_cxx PRIVATE -Wl,-all_load dependency_manager_cxx_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(bar_cxx -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(bar_cxx PRIVATE -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) else() - target_link_libraries(bar_cxx -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(bar_cxx PRIVATE -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) endif() endif() \ No newline at end of file http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/services_example_cxx/baz/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/services_example_cxx/baz/CMakeLists.txt b/examples/services_example_cxx/baz/CMakeLists.txt index 205c716..7e7acb1 100644 --- a/examples/services_example_cxx/baz/CMakeLists.txt +++ b/examples/services_example_cxx/baz/CMakeLists.txt @@ -30,12 +30,12 @@ add_bundle(baz_cxx target_compile_options(baz_cxx PUBLIC -Wall -Wextra -Weffc++ -Werror) IF(APPLE) - target_link_libraries(baz_cxx celix_framework -Wl,-all_load dependency_manager_cxx_static) + target_link_libraries(baz_cxx PRIVATE -Wl,-all_load dependency_manager_cxx_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(baz_cxx -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(baz_cxx PRIVATE -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) else() - target_link_libraries(baz_cxx -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(baz_cxx PRIVATE -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/services_example_cxx/foo/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/services_example_cxx/foo/CMakeLists.txt b/examples/services_example_cxx/foo/CMakeLists.txt index e01af00..384c276 100644 --- a/examples/services_example_cxx/foo/CMakeLists.txt +++ b/examples/services_example_cxx/foo/CMakeLists.txt @@ -30,12 +30,12 @@ add_bundle(foo_cxx target_compile_options(foo_cxx PUBLIC -Wall -Wextra -Weffc++ -Werror) IF(APPLE) - target_link_libraries(foo_cxx celix_framework -Wl,-all_load dependency_manager_cxx_static) + target_link_libraries(foo_cxx PRIVATE -Wl,-all_load dependency_manager_cxx_static) else() if(ENABLE_ADDRESS_SANITIZER) #With asan there can be undefined symbols - target_link_libraries(foo_cxx -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(foo_cxx PRIVATE -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) else() - target_link_libraries(foo_cxx -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive celix_framework) + target_link_libraries(foo_cxx PRIVATE -Wl,--no-undefined -Wl,--whole-archive dependency_manager_cxx_static -Wl,--no-whole-archive) endif() endif() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/whiteboard/CMakeLists.txt b/examples/whiteboard/CMakeLists.txt deleted file mode 100644 index b904241..0000000 --- a/examples/whiteboard/CMakeLists.txt +++ /dev/null @@ -1,24 +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_subdirectory(publisherA) -add_subdirectory(publisherB) -add_subdirectory(tracker) -add_subdirectory(tracker_depman) - -add_deploy("whiteboard" GROUP whiteboard BUNDLES tracker publisherA publisherB shell shell_tui log_service log_writer) -add_deploy("whiteboard_dependency_manager" GROUP whiteboard BUNDLES tracker_depman publisherA publisherB shell shell_tui log_service log_writer dm_shell) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/publisherA/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/whiteboard/publisherA/CMakeLists.txt b/examples/whiteboard/publisherA/CMakeLists.txt deleted file mode 100644 index a219360..0000000 --- a/examples/whiteboard/publisherA/CMakeLists.txt +++ /dev/null @@ -1,23 +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_bundle(publisherA VERSION 1.0.0 SOURCES private/src/activator private/src/publisher) -include_directories("../publisherService/public/include") -include_directories("../publisherService/private/include") -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -target_link_libraries(publisherA celix_framework) http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/publisherA/private/src/activator.c ---------------------------------------------------------------------- diff --git a/examples/whiteboard/publisherA/private/src/activator.c b/examples/whiteboard/publisherA/private/src/activator.c deleted file mode 100644 index 663b0b9..0000000 --- a/examples/whiteboard/publisherA/private/src/activator.c +++ /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. - */ -/* - * activator.c - * - * \date Aug 23, 2010 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ -#include -#include - -#include "bundle_activator.h" -#include "publisher_private.h" - -struct activatorData { - publisher_service_pt ps; - publisher_pt pub; - - service_registration_pt reg; -}; - -celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) { - *userData = calloc(1, sizeof(struct activatorData)); - return CELIX_SUCCESS; -} - -celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - properties_pt props = NULL; - - struct activatorData * data = (struct activatorData *) userData; - data->ps = calloc(1, sizeof(*(data->ps))); - data->pub = calloc(1, sizeof(*(data->pub))); - data->ps->invoke = publisher_invoke; - data->ps->publisher = data->pub; - data->reg = NULL; - - props = properties_create(); - properties_set(props, "id", "A"); - properties_set(props,(char*)OSGI_FRAMEWORK_SERVICE_RANKING , "10"); - - status = bundleContext_registerService(context, PUBLISHER_NAME, data->ps, props, &data->reg); - if (status != CELIX_SUCCESS) { - char error[256]; - printf("Error: %s\n", celix_strerror(status, error, 256)); - } - - return status; -} - -celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - - struct activatorData * data = (struct activatorData *) userData; - serviceRegistration_unregister(data->reg); - - free(data->ps); - free(data->pub); - - return status; -} - -celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) { - free(userData); - return CELIX_SUCCESS; -} http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/publisherA/private/src/publisher.c ---------------------------------------------------------------------- diff --git a/examples/whiteboard/publisherA/private/src/publisher.c b/examples/whiteboard/publisherA/private/src/publisher.c deleted file mode 100644 index 997befd..0000000 --- a/examples/whiteboard/publisherA/private/src/publisher.c +++ /dev/null @@ -1,33 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * publisher.c - * - * \date Aug 23, 2010 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ -#include - -#include "publisher_private.h" - -void publisher_invoke(publisher_pt publisher, char * text) { - printf("Publisher A received: %s\n", text); -} - http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/publisherB/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/whiteboard/publisherB/CMakeLists.txt b/examples/whiteboard/publisherB/CMakeLists.txt deleted file mode 100644 index 74f0bb5..0000000 --- a/examples/whiteboard/publisherB/CMakeLists.txt +++ /dev/null @@ -1,22 +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_bundle(publisherB VERSION 1.0.0 SOURCES private/src/activator private/src/publisher) -include_directories("../publisherService/public/include") -include_directories("../publisherService/private/include") -target_link_libraries(publisherB celix_framework) -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/publisherB/private/src/activator.c ---------------------------------------------------------------------- diff --git a/examples/whiteboard/publisherB/private/src/activator.c b/examples/whiteboard/publisherB/private/src/activator.c deleted file mode 100644 index f5f1a2e..0000000 --- a/examples/whiteboard/publisherB/private/src/activator.c +++ /dev/null @@ -1,77 +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 - * - * \date Aug 23, 2010 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ -#include -#include - -#include "bundle_activator.h" -#include "publisher_private.h" - -struct activatorData { - publisher_service_pt ps; - publisher_pt pub; - - service_registration_pt reg; -}; - -celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) { - *userData = calloc(1, sizeof(struct activatorData)); - return CELIX_SUCCESS; -} - -celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - properties_pt props = properties_create(); - - struct activatorData * data = (struct activatorData *) userData; - data->ps = calloc(1, sizeof(*(data->ps))); - data->pub = calloc(1, sizeof(*(data->pub))); - data->ps->invoke = publisher_invoke; - data->ps->publisher = data->pub; - data->reg = NULL; - - properties_set(props, "id", "B"); - properties_set(props,(char*)OSGI_FRAMEWORK_SERVICE_RANKING , "20"); - - bundleContext_registerService(context, PUBLISHER_NAME, data->ps, props, &data->reg); - return status; -} - -celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - - struct activatorData * data = (struct activatorData *) userData; - serviceRegistration_unregister(data->reg); - - free(data->pub); - free(data->ps); - - return status; -} - -celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) { - free(userData); - return CELIX_SUCCESS; -} http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/publisherB/private/src/publisher.c ---------------------------------------------------------------------- diff --git a/examples/whiteboard/publisherB/private/src/publisher.c b/examples/whiteboard/publisherB/private/src/publisher.c deleted file mode 100644 index 87bb300..0000000 --- a/examples/whiteboard/publisherB/private/src/publisher.c +++ /dev/null @@ -1,33 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * publisher.c - * - * \date Aug 23, 2010 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ -#include - -#include "publisher_private.h" - -void publisher_invoke(publisher_pt publisher, char * text) { - printf("Publisher B received: %s\n", text); -} - http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/publisherService/private/include/publisher_private.h ---------------------------------------------------------------------- diff --git a/examples/whiteboard/publisherService/private/include/publisher_private.h b/examples/whiteboard/publisherService/private/include/publisher_private.h deleted file mode 100644 index 19c524d..0000000 --- a/examples/whiteboard/publisherService/private/include/publisher_private.h +++ /dev/null @@ -1,38 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * publisher_private.h - * - * \date Aug 23, 2010 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ - -#ifndef PUBLISHER_PRIVATE_H_ -#define PUBLISHER_PRIVATE_H_ - -#include "publisher.h" - -struct publisher { - void *data; -}; - -void publisher_invoke(publisher_pt publisher, char * text); - -#endif /* PUBLISHER_PRIVATE_H_ */ http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/publisherService/public/include/publisher.h ---------------------------------------------------------------------- diff --git a/examples/whiteboard/publisherService/public/include/publisher.h b/examples/whiteboard/publisherService/public/include/publisher.h deleted file mode 100644 index 9b18429..0000000 --- a/examples/whiteboard/publisherService/public/include/publisher.h +++ /dev/null @@ -1,42 +0,0 @@ -/** - *Licensed to the Apache Software Foundation (ASF) under one - *or more contributor license agreements. See the NOTICE file - *distributed with this work for additional information - *regarding copyright ownership. The ASF licenses this file - *to you under the Apache License, Version 2.0 (the - *"License"); you may not use this file except in compliance - *with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - *Unless required by applicable law or agreed to in writing, - *software distributed under the License is distributed on an - *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - *specific language governing permissions and limitations - *under the License. - */ -/* - * publisher.h - * - * \date Aug 23, 2010 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ - -#ifndef PUBLISHER_H_ -#define PUBLISHER_H_ - -#define PUBLISHER_NAME "Publisher" - -typedef struct publisher * publisher_pt; - -struct publisherService { - publisher_pt publisher; - void (*invoke)(publisher_pt pub, char * text); -}; - -typedef struct publisherService * publisher_service_pt; - - -#endif /* PUBLISHER_H_ */ http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/tracker/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/whiteboard/tracker/CMakeLists.txt b/examples/whiteboard/tracker/CMakeLists.txt deleted file mode 100644 index c44b206..0000000 --- a/examples/whiteboard/tracker/CMakeLists.txt +++ /dev/null @@ -1,21 +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_bundle(tracker VERSION 1.0.0 SOURCES private/src/activator) -include_directories("../publisherService/public/include") -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -target_link_libraries(tracker celix_framework) http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/tracker/private/src/activator.c ---------------------------------------------------------------------- diff --git a/examples/whiteboard/tracker/private/src/activator.c b/examples/whiteboard/tracker/private/src/activator.c deleted file mode 100644 index db5f3fc..0000000 --- a/examples/whiteboard/tracker/private/src/activator.c +++ /dev/null @@ -1,126 +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 - * - * \date Aug 23, 2010 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ -#include -#include - -#include "celixbool.h" - -#include "bundle_activator.h" -#include "publisher.h" -#include "service_tracker.h" - -struct data { - bundle_context_pt context; - service_tracker_pt tracker; - array_list_pt publishers; - pthread_t sender; - bool running; -}; - -static void *trk_send(void *handle) { - struct data * data = (struct data *) handle; - while (data->running) { - int i; - for (i = 0; i < arrayList_size(data->publishers); i++) { - publisher_service_pt pub = arrayList_get(data->publishers, i); - pub->invoke(pub->publisher, "test"); - } - usleep(1000000); - } - pthread_exit(NULL); - return NULL; -} - -celix_status_t addingServ(void * handle, service_reference_pt ref, void **service) { - struct data * data = (struct data *) handle; - - printf("Adding\n"); - bundleContext_getService(data->context, ref, service); - - return CELIX_SUCCESS; -} - -celix_status_t addedServ(void * handle, service_reference_pt ref, void * service) { - struct data * data = (struct data *) handle; - arrayList_add(data->publishers, service); - printf("Added %p\n", service); - return CELIX_SUCCESS; -} - -celix_status_t modifiedServ(void * handle, service_reference_pt ref, void * service) { - printf("Modified\n"); - return CELIX_SUCCESS; -} - -celix_status_t removedServ(void * handle, service_reference_pt ref, void * service) { - struct data * data = (struct data *) handle; - arrayList_removeElement(data->publishers, service); - printf("Removed %p\n", service); - return CELIX_SUCCESS; -} - -celix_status_t bundleActivator_create(bundle_context_pt context, void **userData) { - *userData = calloc(1, sizeof(struct data)); - ((struct data *) (*userData))->publishers = NULL; - arrayList_create(&((struct data *) (*userData))->publishers); - return CELIX_SUCCESS; -} - -celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - struct data * data = (struct data *) userData; - service_tracker_customizer_pt cust = NULL; - service_tracker_pt tracker = NULL; - data->context = context; - serviceTrackerCustomizer_create(data, addingServ, addedServ, modifiedServ, removedServ, &cust); - serviceTracker_create(context, (char *) PUBLISHER_NAME, cust, &tracker); - data->tracker = tracker; - serviceTracker_open(tracker); - data->running = true; - pthread_create(&data->sender, NULL, trk_send, data); - return status; -} - -celix_status_t bundleActivator_stop(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - struct data * data = (struct data *) userData; - - printf("Stop\n"); - serviceTracker_close(data->tracker); - data->running = false; - pthread_join(data->sender, NULL); - - return status; -} - -celix_status_t bundleActivator_destroy(void * userData, bundle_context_pt context) { - celix_status_t status = CELIX_SUCCESS; - struct data * data = (struct data *) userData; - - arrayList_destroy(data->publishers); - - return status; -} http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/tracker_depman/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/whiteboard/tracker_depman/CMakeLists.txt b/examples/whiteboard/tracker_depman/CMakeLists.txt deleted file mode 100644 index 3bd5942..0000000 --- a/examples/whiteboard/tracker_depman/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -add_bundle(tracker_depman VERSION 1.0.0 SOURCES - private/src/dependency_activator - private/src/tracker - - private/include/tracker.h -) -include_directories("private/include") -include_directories("${PROJECT_SOURCE_DIR}/dependency_manager/public/include") -#include_directories("${PROJECT_SOURCE_DIR}/dependency_manager/private/include") -include_directories("../publisherService/public/include") -include_directories("${PROJECT_SOURCE_DIR}/utils/public/include") -include_directories("${PROJECT_SOURCE_DIR}/log_service/public/include") - -# Use some magic to include all symbols of the static library -IF(APPLE) -target_link_libraries(tracker_depman celix_framework -Wl,-all_load dependency_manager_static) -else() -target_link_libraries(tracker_depman -Wl,--whole-archive dependency_manager_static -Wl,--no-whole-archive celix_framework) -ENDIF() http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/tracker_depman/private/include/tracker.h ---------------------------------------------------------------------- diff --git a/examples/whiteboard/tracker_depman/private/include/tracker.h b/examples/whiteboard/tracker_depman/private/include/tracker.h deleted file mode 100644 index 55438d2..0000000 --- a/examples/whiteboard/tracker_depman/private/include/tracker.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. - */ -/* - * tracker.h - * - * \date Mar 7, 2011 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ - -#ifndef TRACKER_H_ -#define TRACKER_H_ - -#include "dm_component.h" -#include "log_service.h" - -struct data { - dm_component_pt service; - dm_service_dependency_pt dep; - dm_service_dependency_pt dep2; - bundle_context_pt context; - array_list_pt publishers; - pthread_t sender; - bool running; - log_service_pt logger; - - celix_thread_mutex_t logger_lock; - celix_thread_mutex_t publisher_lock; -}; - -celix_status_t tracker_setServ(void * handle, service_reference_pt ref, const void * service); -celix_status_t tracker_addedServ(void * handle, service_reference_pt ref, const void * service); -celix_status_t tracker_modifiedServ(void * handle, service_reference_pt ref, const void * service); -celix_status_t tracker_removedServ(void * handle, service_reference_pt ref, const void * service); - -celix_status_t tracker_setLog(void * handle, service_reference_pt ref, const void * service); -celix_status_t tracker_addLog(void * handle, service_reference_pt ref, const void * service); -celix_status_t tracker_modifiedLog(void * handle, service_reference_pt ref, const void * service); -celix_status_t tracker_removeLog(void * handle, service_reference_pt ref, const void * service); - -celix_status_t service_init(void * userData); -celix_status_t service_start(void * userData); -celix_status_t service_stop(void * userData); -celix_status_t service_deinit(void * userData); - - -#endif /* TRACKER_H_ */ http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/tracker_depman/private/src/dependency_activator.c ---------------------------------------------------------------------- diff --git a/examples/whiteboard/tracker_depman/private/src/dependency_activator.c b/examples/whiteboard/tracker_depman/private/src/dependency_activator.c deleted file mode 100644 index 9ac295d..0000000 --- a/examples/whiteboard/tracker_depman/private/src/dependency_activator.c +++ /dev/null @@ -1,116 +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. - */ -/* - * dependency_activator.c - * - * \date Aug 23, 2010 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ -#include -#include -#include "celixbool.h" - -#include "dm_activator.h" -#include "publisher.h" -#include "tracker.h" - -celix_status_t dm_create(bundle_context_pt context, void **userData) { - printf("Create\n"); - struct data * data = malloc(sizeof(*data)); - data->publishers = NULL; - arrayList_create(&data->publishers); - data->context = NULL; - data->running = false; - data->sender = 0; - data->service = NULL; - data->logger = NULL; - *userData = data; - return CELIX_SUCCESS; -} - -celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) { - printf("Init\n"); - struct data * data = (struct data *) userData; - dm_component_pt service = NULL; - dm_service_dependency_pt dep1 = NULL; - dm_service_dependency_pt dep2 = NULL; - - data->context = context; - - component_create(context, "ExampleCmp", &service); - component_setImplementation(service, data); - component_setCallbacks(service, service_init, service_start, service_stop, service_deinit); - - serviceDependency_create(&dep1); - serviceDependency_setRequired(dep1, true); - serviceDependency_setService(dep1, PUBLISHER_NAME, NULL, "(|(id=A)(id=B))"); - serviceDependency_setCallbacksWithServiceReference(dep1, NULL /*tracker_setServ*/, tracker_addedServ, tracker_modifiedServ, tracker_removedServ, NULL); - component_addServiceDependency(service, dep1); - - serviceDependency_create(&dep2); - serviceDependency_setRequired(dep2, false); - serviceDependency_setService(dep2, (char *) OSGI_LOGSERVICE_NAME, NULL, NULL); - serviceDependency_setCallbacksWithServiceReference(dep2, NULL /*tracker_setLog*/, tracker_addLog, tracker_modifiedLog, tracker_removeLog, NULL); - serviceDependency_setAutoConfigure(dep2, &data->logger_lock, (const void **) &data->logger); - component_addServiceDependency(service, dep2); - - data->service = service; - data->dep = dep1; - data->dep2 = dep2; - - dependencyManager_add(manager, service); - - return CELIX_SUCCESS; -} - -celix_status_t dm_destroy(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) { - struct data * data = (struct data *) userData; - - arrayList_destroy(data->publishers); - data->publishers = NULL; - free(data); - data = NULL; - return CELIX_SUCCESS; -} - -//int count; -// -//void lock(int state) { -// pthread_mutex_t lock; -// if (state == 1) { -// if (count > 0) { -// count++; -// } else { -// pthread_mutex_lock(&lock); -// } -// } else { -// pthread_mutex_lock(&lock); -// } -//} -// -//void unlcok(int state) { -// if (state == 1) { -// if (count-- == 0) { -// pthread_mutex_unlock(&lock); -// } -// } else { -// pthread_mutex_unlock(&lock); -// } -//} http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/examples/whiteboard/tracker_depman/private/src/tracker.c ---------------------------------------------------------------------- diff --git a/examples/whiteboard/tracker_depman/private/src/tracker.c b/examples/whiteboard/tracker_depman/private/src/tracker.c deleted file mode 100644 index d38abb9..0000000 --- a/examples/whiteboard/tracker_depman/private/src/tracker.c +++ /dev/null @@ -1,142 +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. - */ -/* - * tracker.c - * - * \date Mar 7, 2011 - * \author Apache Celix Project Team - * \copyright Apache License, Version 2.0 - */ -#include -#include -#include - -#include "celixbool.h" - -#include "publisher.h" -#include "tracker.h" - -static void *dp_send(void *handle) { - struct data * data = (struct data *) handle; - while (data->running) { - printf("Running\n"); - int i; - // lock - for (i = 0; i < arrayList_size(data->publishers); i++) { - publisher_service_pt pub = (publisher_service_pt) arrayList_get(data->publishers, i); - pub->invoke(pub->publisher, "Tracker message"); - celixThreadMutex_lock(&data->logger_lock); - printf("%p\n", data->logger); - if (data->logger != NULL) { - data->logger->log(data->logger->logger, OSGI_LOGSERVICE_INFO, "Sending message to publisher"); - } - celixThreadMutex_unlock(&data->logger_lock); - } - // lock - usleep(1000000); - } - pthread_exit(NULL); - return NULL; -} - -celix_status_t service_init(void * userData) { - fprintf(stderr, "Service init"); - return CELIX_SUCCESS; -} - -celix_status_t service_start(void * userData) { - struct data * data = (struct data *) userData; - fprintf(stderr, "Service started\n"); - data->running = true; - pthread_create(&data->sender, NULL, dp_send, data); - return CELIX_SUCCESS; -} - -celix_status_t service_stop(void * userData) { - struct data * data = (struct data *) userData; - fprintf(stderr, "Service stopped\n"); - data->running = false; - pthread_join(data->sender, NULL); - return CELIX_SUCCESS; -} - -celix_status_t service_deinit(void * userData) { - fprintf(stderr, "Service deinit\n"); - return CELIX_SUCCESS; -} - -celix_status_t tracker_setServ(void * handle, service_reference_pt ref, const void * service) { - printf("Service Set %p\n", service); - return CELIX_SUCCESS; -} - - -celix_status_t tracker_addedServ(void * handle, service_reference_pt ref, const void * service) { - struct data * data = (struct data *) handle; - arrayList_add(data->publishers, (void*)service); - printf("Service Added %p\n", service); - return CELIX_SUCCESS; -} - -celix_status_t tracker_modifiedServ(void * handle, service_reference_pt ref, const void * service) { - printf("Service Changed\n"); - return CELIX_SUCCESS; -} - -celix_status_t tracker_removedServ(void * handle, service_reference_pt ref, const void * service) { - struct data * data = (struct data *) handle; - arrayList_removeElement(data->publishers, (void*) service); - printf("Service Removed\n"); - return CELIX_SUCCESS; -} - -celix_status_t tracker_setLog(void *handle, service_reference_pt ref, const void *service) { - struct data * data = (struct data *) handle; - - printf("SET log %p\n", service); - if(service) { - data->logger = (log_service_pt)service; - ((log_service_pt) service)->log(((log_service_pt) service)->logger, OSGI_LOGSERVICE_DEBUG, "SET log"); - } - fprintf(stderr, "SET end %p\n", service); - return CELIX_SUCCESS; -} - -celix_status_t tracker_addLog(void *handle, service_reference_pt ref, const void *service) { - struct data * data = (struct data *) handle; - printf("Add log %p\n", service); - data->logger = (log_service_pt)service; - ((log_service_pt) service)->log(((log_service_pt) service)->logger, OSGI_LOGSERVICE_DEBUG, "test"); - return CELIX_SUCCESS; -} - -celix_status_t tracker_modifiedLog(void *handle, service_reference_pt ref, const void *service) { - struct data * data = (struct data *) handle; - printf("Modify log\n"); - data->logger = (void*)service; - ((log_service_pt) service)->log(((log_service_pt) service)->logger, OSGI_LOGSERVICE_DEBUG, "test"); - return CELIX_SUCCESS; -} - -celix_status_t tracker_removeLog(void *handle, service_reference_pt ref, const void *service) { - struct data * data = (struct data *) handle; - data->logger = NULL; - printf("Remove log\n"); - return CELIX_SUCCESS; -}