This is an automated email from the ASF dual-hosted git repository.

pengzheng pushed a commit to branch feature/579-automatic-dependency-deduction
in repository https://gitbox.apache.org/repos/asf/celix.git

commit 2451c522d27134e653bebaacf77ffad05c5045af
Author: PengZheng <[email protected]>
AuthorDate: Fri Jul 14 16:42:19 2023 +0800

    Update test_package to use celix API.
---
 conanfile.py                                       | 10 +++++----
 examples/conan_test_package/CMakeLists.txt         | 26 +++++++++-------------
 examples/conan_test_package/conanfile.py           |  5 ++++-
 examples/conan_test_package/hello_bundle.c         | 11 +++++----
 .../conan_test_package/my_log_writer_activator.c   |  9 +++++---
 examples/conan_test_package/my_psa_activator.c     |  6 ++---
 examples/conan_test_package/my_rsa_activator.c     |  4 ++--
 examples/conan_test_package/test_cxx_shell.cpp     | 14 +++++++-----
 examples/conan_test_package/test_framework.c       | 15 ++++++++-----
 .../conan_test_package/test_http_admin_activator.c | 22 ++++++++++--------
 examples/conan_test_package/test_shell.c           | 17 ++++++++------
 11 files changed, 76 insertions(+), 63 deletions(-)

diff --git a/conanfile.py b/conanfile.py
index d96eabbe..c40a87e1 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -202,10 +202,11 @@ class CelixConan(ConanFile):
             for opt, val in self.options.values.items():
                 if opt.startswith('build_'):
                     setattr(self.options, opt, True)
-            if self.settings.os != "Linux":
-                self.options.build_rsa_remote_service_admin_shm_v2 = False
-                self.options.build_rsa_discovery_zeroconf = False
-                self.options.build_shell_bonjour = False
+
+        if self.settings.os != "Linux":
+            self.options.build_rsa_remote_service_admin_shm_v2 = False
+            self.options.build_rsa_discovery_zeroconf = False
+            self.options.build_shell_bonjour = False
 
         if not self.options.enable_testing:
             self.options.build_pubsub_integration = False
@@ -328,6 +329,7 @@ class CelixConan(ConanFile):
             self.options.build_log_service_api = True
             self.options.build_shell_api = True
             self.options.build_framework = True
+            self.options.build_log_helper = True
 
         if self.options.build_shell_api:
             self.options.build_utils = True
diff --git a/examples/conan_test_package/CMakeLists.txt 
b/examples/conan_test_package/CMakeLists.txt
index 051dbbb4..09323552 100644
--- a/examples/conan_test_package/CMakeLists.txt
+++ b/examples/conan_test_package/CMakeLists.txt
@@ -21,14 +21,16 @@ set(CMAKE_CXX_STANDARD 17)
 
 find_package(Celix REQUIRED)
 
-add_celix_bundle(hello VERSION 1.0.0 SOURCES hello_bundle.c)
-target_link_libraries(hello PRIVATE Celix::log_helper)
-celix_get_bundle_file(hello HELLO_TEST_BUNDLE)
+option(TEST_FRAMEWORK "Test Celix framework" OFF)
+if (TEST_FRAMEWORK)
+    add_celix_bundle(hello VERSION 1.0.0 SOURCES hello_bundle.c)
+    celix_get_bundle_file(hello HELLO_TEST_BUNDLE)
 
-add_executable(use_framework test_framework.c)
-target_link_libraries(use_framework Celix::framework)
-add_celix_bundle_dependencies(use_framework hello)
-target_compile_definitions(use_framework PRIVATE 
HELLO_TEST_BUNDLE_LOCATION="${HELLO_TEST_BUNDLE}")
+    add_executable(use_framework test_framework.c)
+    target_link_libraries(use_framework Celix::framework)
+    add_celix_bundle_dependencies(use_framework hello)
+    target_compile_definitions(use_framework PRIVATE 
HELLO_TEST_BUNDLE_LOCATION="${HELLO_TEST_BUNDLE}")
+endif ()
 
 option(TEST_HTTP_ADMIN "Test http_admin" OFF)
 if (TEST_HTTP_ADMIN)
@@ -52,7 +54,7 @@ if (TEST_LOG_SERVICE)
             my_log_writer_activator.c
             VERSION 1.0.0
             )
-    target_link_libraries(my_log_writer PRIVATE Celix::log_helper 
Celix::log_service_api)
+    target_link_libraries(my_log_writer PRIVATE Celix::log_service_api)
     add_celix_container(use_log_writer COPY)
     celix_container_bundles(use_log_writer LEVEL 0 Celix::log_admin)
     celix_container_bundles(use_log_writer LEVEL 1 my_log_writer)
@@ -77,8 +79,6 @@ if (TEST_PUBSUB)
     target_link_libraries(my_pubsub_admin PRIVATE Celix::pubsub_spi 
Celix::pubsub_utils )
     add_celix_container(use_my_psa
             BUNDLES
-            Celix::celix_pubsub_serializer_json
-            Celix::celix_pubsub_serializer_avrobin
             Celix::celix_pubsub_topology_manager
             my_pubsub_admin
             hello
@@ -91,8 +91,6 @@ option(TEST_PSA_ZMQ "Test ZeroMQ PubSub Admin" OFF)
 if (TEST_PSA_ZMQ)
     add_celix_container(use_psa_zmq
             BUNDLES
-            Celix::celix_pubsub_serializer_json
-            Celix::celix_pubsub_serializer_avrobin
             Celix::celix_pubsub_topology_manager
             Celix::celix_pubsub_admin_zmq
             hello
@@ -105,7 +103,6 @@ option(TEST_PSA_TCP "Test TCP PubSub Admin" OFF)
 if (TEST_PSA_TCP)
     add_celix_container(use_psa_tcp
             BUNDLES
-            Celix::celix_pubsub_serializer_json
             Celix::celix_pubsub_topology_manager
             Celix::celix_pubsub_admin_tcp
             hello
@@ -119,7 +116,6 @@ option(TEST_PSA_UDP_MC "Test UDP MC PubSub Admin" OFF)
 if (TEST_PSA_UDP_MC)
     add_celix_container(use_psa_udp_mc
             BUNDLES
-            Celix::celix_pubsub_serializer_json
             Celix::celix_pubsub_topology_manager
             Celix::celix_pubsub_admin_udp_multicast
             hello
@@ -134,7 +130,6 @@ if (TEST_PSA_WS)
     add_celix_container(use_psa_ws
             BUNDLES
             Celix::http_admin
-            Celix::celix_pubsub_serializer_json
             Celix::celix_pubsub_topology_manager
             Celix::celix_pubsub_admin_websocket
             hello
@@ -147,7 +142,6 @@ option(TEST_PSA_DISCOVERY_ETCD "Test the PubSub Discovery 
(ETCD) bundle" OFF)
 if (TEST_PSA_DISCOVERY_ETCD)
     add_celix_container(use_psa_discovery_etcd
             BUNDLES
-            Celix::celix_pubsub_serializer_json
             Celix::celix_pubsub_topology_manager
             Celix::celix_pubsub_discovery_etcd
             my_pubsub_admin
diff --git a/examples/conan_test_package/conanfile.py 
b/examples/conan_test_package/conanfile.py
index 327a61a7..79d73626 100644
--- a/examples/conan_test_package/conanfile.py
+++ b/examples/conan_test_package/conanfile.py
@@ -22,9 +22,11 @@ import os
 class TestPackageConan(ConanFile):
     settings = "os", "arch", "compiler", "build_type"
     generators = "cmake_paths", "cmake_find_package"
+    # requires = "celix/2.3.0@docker/test"
 
     def build(self):
         cmake = CMake(self)
+        cmake.definitions["TEST_FRAMEWORK"] = 
self.options["celix"].build_framework
         cmake.definitions["TEST_HTTP_ADMIN"] = 
self.options["celix"].build_http_admin
         cmake.definitions["TEST_LOG_SERVICE"] = 
self.options["celix"].build_log_service
         cmake.definitions["TEST_SYSLOG_WRITER"] = 
self.options["celix"].build_syslog_writer
@@ -62,7 +64,8 @@ class TestPackageConan(ConanFile):
 
     def test(self):
         if not tools.cross_building(self, skip_x64_x86=True):
-            self.run("./use_framework", run_environment=True)
+            if self.options["celix"].build_framework:
+                self.run("./use_framework", run_environment=True)
             if self.options["celix"].build_http_admin:
                 self.run("./use_http_admin", cwd=os.path.join("deploy", 
"use_http_admin"), run_environment=True)
             if self.options["celix"].build_log_service:
diff --git a/examples/conan_test_package/hello_bundle.c 
b/examples/conan_test_package/hello_bundle.c
index 6e2afe67..d8452b72 100644
--- a/examples/conan_test_package/hello_bundle.c
+++ b/examples/conan_test_package/hello_bundle.c
@@ -16,18 +16,18 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-#include <celix_api.h>
-#include <celix_log_helper.h>
+#include <celix_bundle_activator.h>
+#include <celix_bundle_context.h>
+#include <celix_framework.h>
 #include <stdio.h>
 
 typedef struct activator_data {
-    celix_log_helper_t *logger;
+    void* data;
 } activator_data_t;
 
 
 static celix_status_t activator_start(activator_data_t *data, 
celix_bundle_context_t *ctx) {
     const char *key = NULL;
-    data->logger = celix_logHelper_create(ctx, "test");
     printf("\nHello world from C bundle with id %li\n", 
celix_bundle_getId(celix_bundleContext_getBundle(ctx)));
     celix_array_list_t *bundles = 
celix_bundleContext_listInstalledBundles(ctx);
     for (int i = 0; i < celix_arrayList_size(bundles); i++) {
@@ -40,8 +40,7 @@ static celix_status_t activator_start(activator_data_t *data, 
celix_bundle_conte
 }
 
 static celix_status_t activator_stop(activator_data_t *data, 
celix_bundle_context_t *ctx) {
-    celix_logHelper_info(data->logger, "Goodbye world from C bundle with id 
%li\n", celix_bundle_getId(celix_bundleContext_getBundle(ctx)));
-    celix_logHelper_destroy(data->logger);
+    printf("Goodbye world from C bundle with id %li\n", 
celix_bundle_getId(celix_bundleContext_getBundle(ctx)));
     return CELIX_SUCCESS;
 }
 
diff --git a/examples/conan_test_package/my_log_writer_activator.c 
b/examples/conan_test_package/my_log_writer_activator.c
index 4d11f35e..8bf40a72 100644
--- a/examples/conan_test_package/my_log_writer_activator.c
+++ b/examples/conan_test_package/my_log_writer_activator.c
@@ -18,9 +18,9 @@
  */
 
 #define _GNU_SOURCE
-#include <stdio.h>
-#include <celix_api.h>
+#include <celix_bundle_activator.h>
 #include <celix_log_sink.h>
+#include <stdio.h>
 
 typedef struct my_log_writer_activator {
     celix_log_sink_t logSinkSvc;
@@ -42,7 +42,10 @@ static void myLogWriter_sinkLog(void *handle 
__attribute__((unused)), celix_log_
     va_end(argCopy);
     if (needed > 1024) {
         char *allocatedBuffer = NULL;
-        vasprintf(&allocatedBuffer, format, formatArgs);
+        if(vasprintf(&allocatedBuffer, format, formatArgs) == -1) {
+            fprintf(stderr, "Error allocating memory for log message\n");
+            return;
+        }
         printf("my [%s]: %s", logServiceName, allocatedBuffer);
         free(allocatedBuffer);
     } else {
diff --git a/examples/conan_test_package/my_psa_activator.c 
b/examples/conan_test_package/my_psa_activator.c
index 32a3b536..6c32125d 100644
--- a/examples/conan_test_package/my_psa_activator.c
+++ b/examples/conan_test_package/my_psa_activator.c
@@ -17,12 +17,12 @@
   under the License.
  */
 
-#include <celix_api.h>
-#include <pubsub_serializer.h>
+#include <celix_bundle_activator.h>
+#include <celix_constants.h>
 #include <celix_log_helper.h>
 #include <pubsub_admin.h>
 #include <pubsub_constants.h>
-#include <celix_constants.h>
+#include <pubsub_serializer.h>
 #include <stdlib.h>
 
 typedef struct my_psa_activator {
diff --git a/examples/conan_test_package/my_rsa_activator.c 
b/examples/conan_test_package/my_rsa_activator.c
index 24e6188d..e8f81714 100644
--- a/examples/conan_test_package/my_rsa_activator.c
+++ b/examples/conan_test_package/my_rsa_activator.c
@@ -17,10 +17,10 @@
   under the License.
  */
 
-#include <celix_api.h>
+#include <celix_bundle_activator.h>
+#include <celix_log_helper.h>
 #include <remote_service_admin.h>
 #include <remote_constants.h>
-#include <celix_log_helper.h>
 
 
 struct remote_service_admin {
diff --git a/examples/conan_test_package/test_cxx_shell.cpp 
b/examples/conan_test_package/test_cxx_shell.cpp
index e5f26908..da028ffa 100644
--- a/examples/conan_test_package/test_cxx_shell.cpp
+++ b/examples/conan_test_package/test_cxx_shell.cpp
@@ -19,8 +19,10 @@
 
 #include <celix/BundleContext.h>
 #include <celix/IShellCommand.h>
+#include <celix_framework.h>
+#include <celix_framework_factory.h>
 #include <celix_shell.h>
-#include <celix_api.h>
+#include <celix_properties.h>
 #include <iostream>
 #include <atomic>
 #include <assert.h>
@@ -39,13 +41,13 @@ int main() {
     celix_bundle_context_t *ctx = NULL;
     celix_properties_t *properties = NULL;
 
-    properties = properties_create();
-    properties_set(properties, "LOGHELPER_ENABLE_STDOUT_FALLBACK", "true");
-    properties_set(properties, "org.osgi.framework.storage.clean", 
"onFirstInit");
-    properties_set(properties, "org.osgi.framework.storage", 
".cacheBundleContextTestFramework");
+    properties = celix_properties_create();
+    celix_properties_setBool(properties, "LOGHELPER_ENABLE_STDOUT_FALLBACK", 
true);
+    celix_properties_setBool(properties, "org.osgi.framework.storage.clean", 
true);
+    celix_properties_set(properties, "org.osgi.framework.storage", 
".cacheBundleContextTestFramework");
 
     fw = celix_frameworkFactory_createFramework(properties);
-    ctx = framework_getContext(fw);
+    ctx = celix_framework_getFrameworkContext(fw);
     long bndId = celix_bundleContext_installBundle(ctx, 
CXX_SHELL_BUNDLE_LOCATION, true);
     assert(bndId >= 0);
 
diff --git a/examples/conan_test_package/test_framework.c 
b/examples/conan_test_package/test_framework.c
index 416a046a..ae9531ed 100644
--- a/examples/conan_test_package/test_framework.c
+++ b/examples/conan_test_package/test_framework.c
@@ -16,8 +16,11 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-#include <celix_api.h>
 #include <assert.h>
+#include <celix_bundle_context.h>
+#include <celix_framework.h>
+#include <celix_framework_factory.h>
+#include <celix_properties.h>
 #include <stddef.h>
 
 int main() {
@@ -25,13 +28,13 @@ int main() {
     celix_bundle_context_t *ctx = NULL;
     celix_properties_t *properties = NULL;
 
-    properties = properties_create();
-    properties_set(properties, "LOGHELPER_ENABLE_STDOUT_FALLBACK", "true");
-    properties_set(properties, "org.osgi.framework.storage.clean", 
"onFirstInit");
-    properties_set(properties, "org.osgi.framework.storage", 
".cacheBundleContextTestFramework");
+    properties = celix_properties_create();
+    celix_properties_setBool(properties, "LOGHELPER_ENABLE_STDOUT_FALLBACK", 
true);
+    celix_properties_setBool(properties, "org.osgi.framework.storage.clean", 
true);
+    celix_properties_set(properties, "org.osgi.framework.storage", 
".cacheBundleContextTestFramework");
 
     fw = celix_frameworkFactory_createFramework(properties);
-    ctx = framework_getContext(fw);
+    ctx = celix_framework_getFrameworkContext(fw);
     long bndId = celix_bundleContext_installBundle(ctx, 
HELLO_TEST_BUNDLE_LOCATION, true);
     assert(bndId >= 0);
     celix_framework_waitForStop(fw);
diff --git a/examples/conan_test_package/test_http_admin_activator.c 
b/examples/conan_test_package/test_http_admin_activator.c
index 73a74d84..14931da3 100644
--- a/examples/conan_test_package/test_http_admin_activator.c
+++ b/examples/conan_test_package/test_http_admin_activator.c
@@ -16,13 +16,12 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
+#include <celix_bundle_activator.h>
+#include <celix_framework.h>
+#include <civetweb.h>
+#include <http_admin/api.h>
 #include <stdlib.h>
 
-#include "celix_api.h"
-#include "http_admin/api.h"
-
-#include "civetweb.h"
-
 struct activator {
     celix_http_service_t httpSvc;
     celix_http_service_t httpSvc2;
@@ -37,6 +36,7 @@ struct activator {
 
 //Local function prototypes
 int alias_test_put(void *handle, struct mg_connection *connection, const char 
*path, const char *data, size_t length);
+
 int websocket_data_echo(struct mg_connection *connection, int op_code, char 
*data, size_t length, void *handle);
 
 celix_status_t bnd_start(struct activator *act, celix_bundle_context_t *ctx) {
@@ -61,7 +61,8 @@ celix_status_t bnd_start(struct activator *act, 
celix_bundle_context_t *ctx) {
     act->sockSvc.handle = act;
     act->sockSvc.data = websocket_data_echo;
     act->sockSvcId = celix_bundleContext_registerService(ctx, &act->sockSvc, 
WEBSOCKET_ADMIN_SERVICE_NAME, props4);
-    celix_framework_stopBundleAsync(celix_bundleContext_getFramework(ctx), 
CELIX_FRAMEWORK_BUNDLE_ID); // make to container quit immediately
+    celix_framework_stopBundleAsync(celix_bundleContext_getFramework(ctx),
+                                    CELIX_FRAMEWORK_BUNDLE_ID); // make to 
container quit immediately
     return CELIX_SUCCESS;
 }
 
@@ -76,9 +77,10 @@ celix_status_t bnd_stop(struct activator *act, 
celix_bundle_context_t *ctx) {
 
 CELIX_GEN_BUNDLE_ACTIVATOR(struct activator, bnd_start, bnd_stop);
 
-int alias_test_put(void *handle __attribute__((unused)), struct mg_connection 
*connection, const char *path __attribute__((unused)), const char *data, size_t 
length) {
+int alias_test_put(void *handle __attribute__((unused)), struct mg_connection 
*connection,
+                   const char *path __attribute__((unused)), const char *data, 
size_t length) {
     //If data received, echo the data for the test case
-    if(length > 0 && data != NULL) {
+    if (length > 0 && data != NULL) {
         const char *mime_type = mg_get_header(connection, "Content-Type");
         mg_printf(connection,
                   "HTTP/1.1 200 OK\r\nContent-Type: %s\r\nConnection: 
close\r\n\r\n%s", mime_type, data);
@@ -88,7 +90,9 @@ int alias_test_put(void *handle __attribute__((unused)), 
struct mg_connection *c
     return 200;
 }
 
-int websocket_data_echo(struct mg_connection *connection, int op_code 
__attribute__((unused)), char *data, size_t length, void *handle 
__attribute__((unused))) {
+int
+websocket_data_echo(struct mg_connection *connection, int op_code 
__attribute__((unused)), char *data, size_t length,
+                    void *handle __attribute__((unused))) {
     mg_websocket_write(connection, MG_WEBSOCKET_OPCODE_PONG, data, length);
 
     return 0; //Close socket after echoing.
diff --git a/examples/conan_test_package/test_shell.c 
b/examples/conan_test_package/test_shell.c
index e4c3421f..67f44a00 100644
--- a/examples/conan_test_package/test_shell.c
+++ b/examples/conan_test_package/test_shell.c
@@ -16,10 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
+#include <assert.h>
+#include <celix_bundle_context.h>
+#include <celix_framework.h>
+#include <celix_framework_factory.h>
+#include <celix_properties.h>
 #include <celix_shell_command.h>
 #include <celix_shell.h>
-#include <celix_api.h>
-#include <assert.h>
 
 static void use(void *handle, void *svc) {
     celix_shell_t *shell = svc;
@@ -39,13 +42,13 @@ int main() {
     celix_bundle_context_t *ctx = NULL;
     celix_properties_t *properties = NULL;
 
-    properties = properties_create();
-    properties_set(properties, "LOGHELPER_ENABLE_STDOUT_FALLBACK", "true");
-    properties_set(properties, "org.osgi.framework.storage.clean", 
"onFirstInit");
-    properties_set(properties, "org.osgi.framework.storage", 
".cacheBundleContextTestFramework");
+    properties = celix_properties_create();
+    celix_properties_setBool(properties, "LOGHELPER_ENABLE_STDOUT_FALLBACK", 
true);
+    celix_properties_setBool(properties, "org.osgi.framework.storage.clean", 
true);
+    celix_properties_set(properties, "org.osgi.framework.storage", 
".cacheBundleContextTestFramework");
 
     fw = celix_frameworkFactory_createFramework(properties);
-    ctx = framework_getContext(fw);
+    ctx = celix_framework_getFrameworkContext(fw);
     long bndId = celix_bundleContext_installBundle(ctx, SHELL_BUNDLE_LOCATION, 
true);
     assert(bndId >= 0);
 

Reply via email to