You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by ab...@apache.org on 2014/09/29 08:59:00 UTC

svn commit: r1628128 - in /celix/trunk/examples: ./ echo_service/client/ echo_service/client/private/include/ echo_service/client/private/src/ echo_service/server/

Author: abroekhuis
Date: Mon Sep 29 06:58:59 2014
New Revision: 1628128

URL: http://svn.apache.org/r1628128
Log:
CELIX-154: Applied (most of) the patch. Removed some compiler switches and other fixed to keep the changes limited to the echo example.

Modified:
    celix/trunk/examples/CMakeLists.txt
    celix/trunk/examples/deploy.cmake
    celix/trunk/examples/echo_service/client/CMakeLists.txt
    celix/trunk/examples/echo_service/client/private/include/echo_client_private.h
    celix/trunk/examples/echo_service/client/private/src/echo_client.c
    celix/trunk/examples/echo_service/client/private/src/echo_client_activator.c
    celix/trunk/examples/echo_service/server/CMakeLists.txt

Modified: celix/trunk/examples/CMakeLists.txt
URL: http://svn.apache.org/viewvc/celix/trunk/examples/CMakeLists.txt?rev=1628128&r1=1628127&r2=1628128&view=diff
==============================================================================
--- celix/trunk/examples/CMakeLists.txt (original)
+++ celix/trunk/examples/CMakeLists.txt Mon Sep 29 06:58:59 2014
@@ -21,7 +21,7 @@ if (EXAMPLES)
     #add_subdirectory(mongoose)
     
     #add_subdirectory(whiteboard)
-    #add_subdirectory(echo_service)
+    add_subdirectory(echo_service)
     
     add_subdirectory(osgi-in-action/chapter04-correct-lookup)
     add_subdirectory(osgi-in-action/chapter04-correct-listener)

Modified: celix/trunk/examples/deploy.cmake
URL: http://svn.apache.org/viewvc/celix/trunk/examples/deploy.cmake?rev=1628128&r1=1628127&r2=1628128&view=diff
==============================================================================
--- celix/trunk/examples/deploy.cmake (original)
+++ celix/trunk/examples/deploy.cmake Mon Sep 29 06:58:59 2014
@@ -22,5 +22,5 @@ if (EXAMPLES)
 	deploy("hello_world" BUNDLES shell shell_tui org.apache.incubator.celix.helloworld hello_world_test log_service)
 	#deploy("wb" BUNDLES tracker publisherA publisherB shell shell_tui log_service log_writer)
 	#deploy("wb_dp" BUNDLES tracker_depman publisherA publisherB shell shell_tui log_service log_writer)
-	#deploy("echo" BUNDLES echo_server echo_client shell shell_tui log_service log_writer)
+	deploy("echo" BUNDLES echo_server echo_client shell shell_tui)
 endif (EXAMPLES)
\ No newline at end of file

Modified: celix/trunk/examples/echo_service/client/CMakeLists.txt
URL: http://svn.apache.org/viewvc/celix/trunk/examples/echo_service/client/CMakeLists.txt?rev=1628128&r1=1628127&r2=1628128&view=diff
==============================================================================
--- celix/trunk/examples/echo_service/client/CMakeLists.txt (original)
+++ celix/trunk/examples/echo_service/client/CMakeLists.txt Mon Sep 29 06:58:59 2014
@@ -15,6 +15,10 @@
 # specific language governing permissions and limitations
 # under the License.
 
+SET(BUNDLE_SYMBOLICNAME "apache_celix_examples_echo_client")
+SET(BUNDLE_VERSION "0.0.1")
+SET(BUNDLE_NAME "Apache Celix Echo Client")
+
 bundle(echo_client SOURCES 
 	private/src/echo_client_activator 
 	private/src/echo_client

Modified: celix/trunk/examples/echo_service/client/private/include/echo_client_private.h
URL: http://svn.apache.org/viewvc/celix/trunk/examples/echo_service/client/private/include/echo_client_private.h?rev=1628128&r1=1628127&r2=1628128&view=diff
==============================================================================
--- celix/trunk/examples/echo_service/client/private/include/echo_client_private.h (original)
+++ celix/trunk/examples/echo_service/client/private/include/echo_client_private.h Mon Sep 29 06:58:59 2014
@@ -32,14 +32,13 @@
 struct echoClient {
 	service_tracker_pt tracker;
 	bool running;
-	apr_pool_t *pool;
-
-	apr_thread_t *sender;
+	pthread_t sender_thread;
+	char *ident;
 };
 
 typedef struct echoClient * echo_client_pt;
 
-echo_client_pt echoClient_create(service_tracker_pt context, apr_pool_t *pool);
+echo_client_pt echoClient_create(service_tracker_pt context);
 
 void echoClient_start(echo_client_pt client);
 void echoClient_stop(echo_client_pt client);

Modified: celix/trunk/examples/echo_service/client/private/src/echo_client.c
URL: http://svn.apache.org/viewvc/celix/trunk/examples/echo_service/client/private/src/echo_client.c?rev=1628128&r1=1628127&r2=1628128&view=diff
==============================================================================
--- celix/trunk/examples/echo_service/client/private/src/echo_client.c (original)
+++ celix/trunk/examples/echo_service/client/private/src/echo_client.c Mon Sep 29 06:58:59 2014
@@ -24,49 +24,54 @@
  *  \copyright	Apache License, Version 2.0
  */
 #include <stdlib.h>
+#include <pthread.h>
+#include <unistd.h>
 
 #include "service_tracker.h"
 
 #include "echo_client_private.h"
 #include "echo_server.h"
 
-static void *APR_THREAD_FUNC trk_send(apr_thread_t *thd, void *handle) {
+static void *trk_send(void *handle) {
+
 	echo_client_pt client = (echo_client_pt) handle;
+
 	while (client->running) {
 		echo_service_pt service = (echo_service_pt) serviceTracker_getService(client->tracker);
 		if (service != NULL) {
-			service->echo(service->server, "hi");
+			service->echo(service->server, client->ident);
 		}
-		apr_sleep(1000000);
+		sleep(1);
 	}
-	apr_thread_exit(thd, APR_SUCCESS);
+
+	pthread_exit(NULL);
+
 	return NULL;
 }
 
-echo_client_pt echoClient_create(service_tracker_pt echoServiceTracker, apr_pool_t *pool) {
+echo_client_pt echoClient_create(service_tracker_pt echoServiceTracker) {
 	echo_client_pt client = malloc(sizeof(*client));
 
 	client->tracker = echoServiceTracker;
 	client->running = false;
-	client->pool = pool;
+	client->ident = "OSX rules";
 
 	return client;
 }
 
 void echoClient_start(echo_client_pt client) {
 	client->running = true;
-	apr_thread_create(&client->sender, NULL, trk_send, client, client->pool);
+	pthread_create(&client->sender_thread, NULL, trk_send, client);
 }
 
 void echoClient_stop(echo_client_pt client) {
-	apr_status_t status;
 	client->running = false;
-	apr_thread_join(&status, client->sender);
+	pthread_join(client->sender_thread, NULL);
 }
 
 void echoClient_destroy(echo_client_pt client) {
 	client->tracker = NULL;
-	client->sender = 0;
+	client->sender_thread = 0;
 	free(client);
 	client = NULL;
 }

Modified: celix/trunk/examples/echo_service/client/private/src/echo_client_activator.c
URL: http://svn.apache.org/viewvc/celix/trunk/examples/echo_service/client/private/src/echo_client_activator.c?rev=1628128&r1=1628127&r2=1628128&view=diff
==============================================================================
--- celix/trunk/examples/echo_service/client/private/src/echo_client_activator.c (original)
+++ celix/trunk/examples/echo_service/client/private/src/echo_client_activator.c Mon Sep 29 06:58:59 2014
@@ -41,7 +41,6 @@ celix_status_t bundleActivator_create(bu
 	struct echoActivator * act = malloc(sizeof(*act));
 	act->client = NULL;
 	act->tracker = NULL;
-
 	*userData = act;
 
 	return CELIX_SUCCESS;
@@ -50,15 +49,14 @@ celix_status_t bundleActivator_create(bu
 celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) {
 	struct echoActivator * act = (struct echoActivator *) userData;
 
-	apr_pool_t *pool = NULL;
 	service_tracker_pt tracker = NULL;
 	echo_client_pt client = NULL;
 
-	bundleContext_getMemoryPool(context, &pool);
-	serviceTracker_create(pool, context, ECHO_SERVICE_NAME, NULL, &tracker);
+	serviceTracker_create(context, ECHO_SERVICE_NAME, NULL, &tracker);
+
 	act->tracker = tracker;
 
-	client = echoClient_create(tracker, pool);
+	client = echoClient_create(tracker);
 	act->client = client;
 
 	echoClient_start(act->client);

Modified: celix/trunk/examples/echo_service/server/CMakeLists.txt
URL: http://svn.apache.org/viewvc/celix/trunk/examples/echo_service/server/CMakeLists.txt?rev=1628128&r1=1628127&r2=1628128&view=diff
==============================================================================
--- celix/trunk/examples/echo_service/server/CMakeLists.txt (original)
+++ celix/trunk/examples/echo_service/server/CMakeLists.txt Mon Sep 29 06:58:59 2014
@@ -15,6 +15,10 @@
 # specific language governing permissions and limitations
 # under the License.
 
+SET(BUNDLE_SYMBOLICNAME "apache_celix_examples_echo_server")
+SET(BUNDLE_VERSION "0.0.1")
+SET(BUNDLE_NAME "Apache Celix Echo Server")
+
 bundle(echo_server SOURCES 
 	private/src/echo_server_activator 
 	private/src/echo_server