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 2013/10/02 11:07:09 UTC
svn commit: r1528386 - in /incubator/celix/trunk:
deployment_admin/private/src/
examples/osgi-in-action/chapter04-paint-example/paint/private/src/
framework/private/src/ framework/public/include/
remote_services/discovery_slp/private/src/ remote_servic...
Author: abroekhuis
Date: Wed Oct 2 09:07:09 2013
New Revision: 1528386
URL: http://svn.apache.org/r1528386
Log:
CELIX-56: Renamed utils functions to follow the correct style
Added:
incubator/celix/trunk/remote_services/remote_service_admin_http/
incubator/celix/trunk/remote_services/remote_service_admin_http/private/
incubator/celix/trunk/remote_services/remote_service_admin_http/private/src/
incubator/celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c
- copied, changed from r1528385, incubator/celix/trunk/remote_services/remote_service_admin/private/src/remote_service_admin_impl.c
Modified:
incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c
incubator/celix/trunk/deployment_admin/private/src/deployment_package.c
incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c
incubator/celix/trunk/framework/private/src/framework.c
incubator/celix/trunk/framework/private/src/manifest.c
incubator/celix/trunk/framework/private/src/manifest_parser.c
incubator/celix/trunk/framework/private/src/properties.c
incubator/celix/trunk/framework/private/src/utils.c
incubator/celix/trunk/framework/public/include/utils.h
incubator/celix/trunk/remote_services/discovery_slp/private/src/discovery.c
incubator/celix/trunk/remote_services/remote_service_admin/private/src/remote_service_admin_impl.c
incubator/celix/trunk/remote_services/topology_manager/private/src/topology_manager.c
incubator/celix/trunk/remote_shell/private/src/remote_shell.c
incubator/celix/trunk/shell/private/src/shell.c
incubator/celix/trunk/shell_tui/private/src/shell_tui.c
Modified: incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c (original)
+++ incubator/celix/trunk/deployment_admin/private/src/deployment_admin.c Wed Oct 2 09:07:09 2013
@@ -79,7 +79,7 @@ celix_status_t deploymentAdmin_create(ap
(*admin)->running = true;
(*admin)->context = context;
(*admin)->current = NULL;
- (*admin)->packages = hashMap_create(string_hash, NULL, string_equals, NULL);
+ (*admin)->packages = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
(*admin)->targetIdentification = NULL;
(*admin)->pollUrl = NULL;
bundleContext_getProperty(context, IDENTIFICATION_ID, &(*admin)->targetIdentification);
Modified: incubator/celix/trunk/deployment_admin/private/src/deployment_package.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/deployment_admin/private/src/deployment_package.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/deployment_admin/private/src/deployment_package.c (original)
+++ incubator/celix/trunk/deployment_admin/private/src/deployment_package.c Wed Oct 2 09:07:09 2013
@@ -53,8 +53,8 @@ celix_status_t deploymentPackage_create(
(*package)->manifest = manifest;
(*package)->bundleInfos = NULL;
(*package)->resourceInfos = NULL;
- (*package)->nameToBundleInfo = hashMap_create(string_hash, NULL, string_equals, NULL);
- (*package)->pathToEntry = hashMap_create(string_hash, NULL, string_equals, NULL);
+ (*package)->nameToBundleInfo = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
+ (*package)->pathToEntry = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
status = arrayList_create(pool, &(*package)->bundleInfos);
if (status == CELIX_SUCCESS) {
status = arrayList_create(pool, &(*package)->resourceInfos);
Modified: incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c (original)
+++ incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c Wed Oct 2 09:07:09 2013
@@ -94,7 +94,7 @@ celix_status_t paintFrame_create(bundle_
(*frame)->pixMap = NULL;
(*frame)->m_selected = NULL;
(*frame)->context = context;
- (*frame)->m_shapes = hashMap_create(string_hash, NULL, string_equals, NULL);
+ (*frame)->m_shapes = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
(*frame)->m_defaultShape = defaultShape_create((*frame)->context);
linkedList_create((*frame)->pool, &(*frame)->m_shapeComponents);
Modified: incubator/celix/trunk/framework/private/src/framework.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/framework.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/framework.c (original)
+++ incubator/celix/trunk/framework/private/src/framework.c Wed Oct 2 09:07:09 2013
@@ -237,7 +237,7 @@ celix_status_t framework_create(framewor
(*framework)->nextBundleId = 1l;
(*framework)->cache = NULL;
- (*framework)->installRequestMap = hashMap_create(string_hash, string_hash, string_equals, string_equals);
+ (*framework)->installRequestMap = hashMap_create(utils_stringHash, utils_stringHash, utils_stringEquals, utils_stringEquals);
(*framework)->serviceListeners = NULL;
(*framework)->bundleListeners = NULL;
(*framework)->requests = NULL;
@@ -365,7 +365,7 @@ celix_status_t fw_init(framework_pt fram
}
}
- framework->installedBundleMap = hashMap_create(string_hash, NULL, string_equals, NULL);
+ framework->installedBundleMap = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
status = bundle_getArchive(framework->bundle, &archive);
status = bundleArchive_getLocation(archive, &location);
Modified: incubator/celix/trunk/framework/private/src/manifest.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/manifest.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/manifest.c (original)
+++ incubator/celix/trunk/framework/private/src/manifest.c Wed Oct 2 09:07:09 2013
@@ -45,7 +45,7 @@ celix_status_t manifest_create(apr_pool_
apr_pool_pre_cleanup_register(pool, *manifest, manifest_destroy);
(*manifest)->pool = pool;
(*manifest)->mainAttributes = properties_create();
- (*manifest)->attributes = hashMap_create(string_hash, NULL, string_equals, NULL);
+ (*manifest)->attributes = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
}
return status;
Modified: incubator/celix/trunk/framework/private/src/manifest_parser.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/manifest_parser.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/manifest_parser.c (original)
+++ incubator/celix/trunk/framework/private/src/manifest_parser.c Wed Oct 2 09:07:09 2013
@@ -144,7 +144,7 @@ static linked_list_pt manifestParser_par
}
if (strlen(buffer) > 0) {
- linkedList_addElement(list, apr_pstrdup(memory_pool, string_trim(buffer)));
+ linkedList_addElement(list, apr_pstrdup(memory_pool, utils_stringTrim(buffer)));
}
}
@@ -191,8 +191,8 @@ static linked_list_pt manifestParser_par
return NULL;
}
- dirsMap = hashMap_create(string_hash, NULL, string_equals, NULL);
- attrsMap = hashMap_create(string_hash, NULL, string_equals, NULL);
+ dirsMap = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
+ attrsMap = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
for (pieceIdx = pathCount; pieceIdx < linkedList_size(pieces); pieceIdx++) {
Modified: incubator/celix/trunk/framework/private/src/properties.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/properties.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/properties.c (original)
+++ incubator/celix/trunk/framework/private/src/properties.c Wed Oct 2 09:07:09 2013
@@ -30,51 +30,8 @@
#include "properties.h"
#include "utils.h"
-//DEFINE_HASHTABLE_INSERT(prop_insert, struct key, struct value);
-//DEFINE_HASHTABLE_REMOVE(prop_remove, struct key, struct value);
-//DEFINE_HASHTABLE_SEARCH(prop_search, struct key, struct value);
-//
-//static unsigned int hashfromkey(void * ks) {
-// struct key *k = (struct key *) ks;
-// unsigned long hash = 5381;
-// int i;
-// char * ck = strdup(k->key);
-// for (i=0; i<strlen(ck); ++i) hash = 33*hash + ck[i];
-// //int c;
-// //while (c = *ck++) {
-// // hash = ((hash << 5) + hash) + c;
-// //}
-// free(ck);
-// return hash;
-//}
-//
-//static int equalskey(void * k1, void * k2) {
-// struct key * key1 = (struct key *) k1;
-// struct key * key2 = (struct key *) k2;
-// return (strcmp(key1->key, key2->key) == 0);
-//}
-//
-//char * addEntry(HASHTABLE properties, char * k, char * v);
-//char * addEntry(HASHTABLE properties, char * k, char * v) {
-// struct key * search_key = (struct key *) malloc(sizeof(*search_key));
-// struct key * s_key = (struct key *) malloc(sizeof(*s_key));
-// struct value * s_value = (struct value *) malloc(sizeof(*s_value));
-// struct value * oldValue = NULL;
-// s_key->key = k;
-// search_key->key = k;
-// s_value->value = v;
-// oldValue = prop_search(properties, search_key);
-// if (oldValue != NULL) {
-// prop_remove(properties, search_key);
-// }
-// free(search_key);
-// prop_insert(properties, s_key, s_value);
-//
-// return oldValue == NULL ? NULL : oldValue->value;
-//}
-
-properties_pt properties_create(void) {
- return hashMap_create(string_hash, string_hash, string_equals, string_equals);
+properties_t properties_create(void) {
+ return hashMap_create(utils_stringHash, utils_stringHash, utils_stringEquals, utils_stringEquals);
}
void properties_destroy(properties_pt properties) {
@@ -105,9 +62,9 @@ properties_pt properties_load(char * fil
unsigned int pos = strcspn(line, "=");
if (pos != strlen(line)) {
char * ival = NULL;
- key = string_trim(string_ndup((char *)line, pos));
+ key = utils_stringTrim(string_ndup((char *)line, pos));
ival = string_ndup(line+pos+1, strlen(line));
- value = string_trim(ival);
+ value = utils_stringTrim(ival);
if (value != NULL) {
char * cmp = string_ndup(value+strlen(value)-1, 1);
if (strcmp(cont, cmp) == 0) {
@@ -128,7 +85,7 @@ properties_pt properties_load(char * fil
} else {
char * old = NULL;
split = 0;
- strcat(value, string_trim(line));
+ strcat(value, utils_stringTrim(line));
old = hashMap_put(props, strdup(key), strdup(value));
}
}
Modified: incubator/celix/trunk/framework/private/src/utils.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/private/src/utils.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/framework/private/src/utils.c (original)
+++ incubator/celix/trunk/framework/private/src/utils.c Wed Oct 2 09:07:09 2013
@@ -29,7 +29,7 @@
#include "utils.h"
-unsigned int string_hash(void * string) {
+unsigned int utils_stringHash(void * string) {
char * str = (char *) string;
unsigned int hash = 1315423911;
@@ -44,10 +44,13 @@ unsigned int string_hash(void * string)
return hash;
}
-int string_equals(void * string, void * toCompare) {
+int utils_stringEquals(void * string, void * toCompare) {
return strcmp((char *)string, (char *) toCompare) == 0;
}
+/**
+ * \deprecated APR provides a correct alternative: apr_pstrndup
+ */
char * string_ndup(const char *s, size_t n) {
size_t len = strlen(s);
char *ret;
@@ -62,7 +65,7 @@ char * string_ndup(const char *s, size_t
return ret;
}
-char * string_trim(char * string) {
+char * utils_stringTrim(char * string) {
char * copy = string;
char *end;
Modified: incubator/celix/trunk/framework/public/include/utils.h
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/public/include/utils.h?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/framework/public/include/utils.h (original)
+++ incubator/celix/trunk/framework/public/include/utils.h Wed Oct 2 09:07:09 2013
@@ -34,10 +34,10 @@
#include "celixbool.h"
#include "framework_exports.h"
-FRAMEWORK_EXPORT unsigned int string_hash(void * string);
-FRAMEWORK_EXPORT int string_equals(void * string, void * toCompare);
+FRAMEWORK_EXPORT unsigned int utils_stringHash(void * string);
+FRAMEWORK_EXPORT int utils_stringEquals(void * string, void * toCompare);
FRAMEWORK_EXPORT char * string_ndup(const char *s, size_t n);
-FRAMEWORK_EXPORT char * string_trim(char * string);
+FRAMEWORK_EXPORT char * utils_stringTrim(char * string);
FRAMEWORK_EXPORT celix_status_t thread_equalsSelf(apr_os_thread_t thread, bool *equals);
Modified: incubator/celix/trunk/remote_services/discovery_slp/private/src/discovery.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/remote_services/discovery_slp/private/src/discovery.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/remote_services/discovery_slp/private/src/discovery.c (original)
+++ incubator/celix/trunk/remote_services/discovery_slp/private/src/discovery.c Wed Oct 2 09:07:09 2013
@@ -86,7 +86,7 @@ celix_status_t discovery_create(apr_pool
(*discovery)->context = context;
(*discovery)->pool = pool;
(*discovery)->listenerReferences = hashMap_create(serviceReference_hashCode, NULL, serviceReference_equals2, NULL);
- (*discovery)->slpServices = hashMap_create(string_hash, NULL, string_equals, NULL);
+ (*discovery)->slpServices = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
(*discovery)->running = true;
(*discovery)->discoveryPort = getenv("RSA_PORT");
if ((*discovery)->discoveryPort == NULL) {
Modified: incubator/celix/trunk/remote_services/remote_service_admin/private/src/remote_service_admin_impl.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/remote_services/remote_service_admin/private/src/remote_service_admin_impl.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/remote_services/remote_service_admin/private/src/remote_service_admin_impl.c (original)
+++ incubator/celix/trunk/remote_services/remote_service_admin/private/src/remote_service_admin_impl.c Wed Oct 2 09:07:09 2013
@@ -223,11 +223,11 @@ celix_status_t remoteServiceAdmin_export
printf("RSA: Export services (%s)\n", exports);
array_list_pt interfaces = NULL;
arrayList_create(admin->pool, &interfaces);
- if (strcmp(string_trim(exports), "*") == 0) {
+ if (strcmp(utils_stringTrim(exports), "*") == 0) {
char *token;
char *interface = apr_strtok(provided, ",", &token);
while (interface != NULL) {
- arrayList_add(interfaces, string_trim(interface));
+ arrayList_add(interfaces, utils_stringTrim(interface));
interface = apr_strtok(NULL, ",", &token);
}
} else {
Copied: incubator/celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c (from r1528385, incubator/celix/trunk/remote_services/remote_service_admin/private/src/remote_service_admin_impl.c)
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c?p2=incubator/celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c&p1=incubator/celix/trunk/remote_services/remote_service_admin/private/src/remote_service_admin_impl.c&r1=1528385&r2=1528386&rev=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/remote_services/remote_service_admin/private/src/remote_service_admin_impl.c (original)
+++ incubator/celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c Wed Oct 2 09:07:09 2013
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <apr_uuid.h>
#include <apr_strings.h>
#include "remote_service_admin_impl.h"
@@ -39,22 +40,14 @@
#include "service_reference.h"
#include "service_registration.h"
-static const char *ajax_reply_start =
- "HTTP/1.1 200 OK\r\n"
- "Cache: no-cache\r\n"
- "Content-Type: application/x-javascript\r\n"
- "\r\n";
-
-
-static const char *DEFAULT_PORT = "8888";
-
-//void *remoteServiceAdmin_callback(enum mg_event event, struct mg_connection *conn, const struct mg_request_info *request_info);
-static int remoteServiceAdmin_callback(struct mg_connection *conn);
-celix_status_t remoteServiceAdmin_installEndpoint(remote_service_admin_pt admin, export_registration_pt registration, service_reference_pt reference, char *interface);
-celix_status_t remoteServiceAdmin_createEndpointDescription(remote_service_admin_pt admin, properties_pt serviceProperties, properties_pt endpointProperties, char *interface, endpoint_description_pt *description);
-static celix_status_t constructServiceUrl(remote_service_admin_pt admin, char *service, char **serviceUrl);
-celix_status_t remoteServiceAdmin_create(apr_pool_t *pool, bundle_context_pt context, remote_service_admin_pt *admin) {
+
+void *remoteServiceAdmin_callback(enum mg_event event, struct mg_connection *conn, const struct mg_request_info *request_info);
+celix_status_t remoteServiceAdmin_installEndpoint(remote_service_admin_t admin, export_registration_t registration, service_reference_t reference, char *interface);
+celix_status_t remoteServiceAdmin_createEndpointDescription(remote_service_admin_t admin, properties_t serviceProperties, properties_t endpointProperties, char *interface, endpoint_description_t *description);
+celix_status_t remoteServiceAdmin_getUUID(remote_service_admin_t rsa, char **uuidStr);
+
+celix_status_t remoteServiceAdmin_create(apr_pool_t *pool, bundle_context_t context, remote_service_admin_t *admin) {
celix_status_t status = CELIX_SUCCESS;
*admin = apr_palloc(pool, sizeof(**admin));
@@ -70,43 +63,33 @@ celix_status_t remoteServiceAdmin_create
char *port = NULL;
bundleContext_getProperty(context, "RSA_PORT", &port);
if (port == NULL) {
- (*admin)->port = (char *)DEFAULT_PORT;
- } else {
- (*admin)->port = apr_pstrdup(pool, port);
+ printf("No RemoteServiceAdmin port set, set it using RSA_PORT!\n");
}
- printf("Start webserver: %s\n", (*admin)->port);
- const char *options[] = { "listening_ports", (*admin)->port, NULL};
-
- // Prepare callbacks structure. We have only one callback, the rest are NULL.
- struct mg_callbacks callbacks;
- memset(&callbacks, 0, sizeof(callbacks));
- callbacks.begin_request = remoteServiceAdmin_callback;
-
- (*admin)->ctx = mg_start(&callbacks, (*admin), options);
- printf("Start webserver %p\n", (*admin)->ctx);
+ const char *options[] = {"listening_ports", port, NULL};
+ (*admin)->ctx = mg_start(remoteServiceAdmin_callback, (*admin), options);
}
return status;
}
-celix_status_t remoteServiceAdmin_stop(remote_service_admin_pt admin) {
+celix_status_t remoteServiceAdmin_stop(remote_service_admin_t admin) {
celix_status_t status = CELIX_SUCCESS;
- hash_map_iterator_pt iter = hashMapIterator_create(admin->exportedServices);
+ hash_map_iterator_t iter = hashMapIterator_create(admin->exportedServices);
while (hashMapIterator_hasNext(iter)) {
- array_list_pt exports = hashMapIterator_nextValue(iter);
+ array_list_t exports = hashMapIterator_nextValue(iter);
int i;
for (i = 0; i < arrayList_size(exports); i++) {
- export_registration_pt export = arrayList_get(exports, i);
+ export_registration_t export = arrayList_get(exports, i);
exportRegistration_stopTracking(export);
}
}
iter = hashMapIterator_create(admin->importedServices);
while (hashMapIterator_hasNext(iter)) {
- array_list_pt exports = hashMapIterator_nextValue(iter);
+ array_list_t exports = hashMapIterator_nextValue(iter);
int i;
for (i = 0; i < arrayList_size(exports); i++) {
- import_registration_pt export = arrayList_get(exports, i);
+ import_registration_t export = arrayList_get(exports, i);
importRegistration_stopTracking(export);
}
}
@@ -114,69 +97,16 @@ celix_status_t remoteServiceAdmin_stop(r
return status;
}
-/**
- * Request: http://host:port/services/{service}/{request}
- */
-//void *remoteServiceAdmin_callback(enum mg_event event, struct mg_connection *conn, const struct mg_request_info *request_info) {
-
-static int remoteServiceAdmin_callback(struct mg_connection *conn) {
- const struct mg_request_info *request_info = mg_get_request_info(conn);
- if (request_info->uri != NULL) {
- printf("REMOTE_SERVICE_ADMIN: Handle request: %s\n", request_info->uri);
- remote_service_admin_pt rsa = request_info->user_data;
-
- if (strncmp(request_info->uri, "/services/", 10) == 0) {
- // uri = /services/myservice/call
- const char *uri = request_info->uri;
- // rest = myservice/call
- const char *rest = uri+10;
- int length = strlen(rest);
- char *callStart = strchr(rest, '/');
- int pos = callStart - rest;
- char service[pos+1];
- strncpy(service, rest, pos);
- service[pos] = '\0';
-
- char request[length - pos];
- strncpy(request, rest + pos + 1, length - pos);
-
- const char *lengthStr = mg_get_header(conn, (const char *) "Content-Length");
- int datalength = apr_atoi64(lengthStr);
- char data[datalength+1];
- mg_read(conn, data, datalength);
- data[datalength] = '\0';
-
- hash_map_iterator_pt iter = hashMapIterator_create(rsa->exportedServices);
- while (hashMapIterator_hasNext(iter)) {
- hash_map_entry_pt entry = hashMapIterator_nextEntry(iter);
- array_list_pt exports = hashMapEntry_getValue(entry);
- int expIt = 0;
- for (expIt = 0; expIt < arrayList_size(exports); expIt++) {
- export_registration_pt export = arrayList_get(exports, expIt);
- if (strcmp(service, export->endpointDescription->service) == 0) {
- char *reply = NULL;
- export->endpoint->handleRequest(export->endpoint->endpoint, request, data, &reply);
- if (reply != NULL) {
- mg_printf(conn, "%s", ajax_reply_start);
- mg_printf(conn, "%s", reply);
- }
- }
- }
- }
- }
- }
- return 1;
-}
-celix_status_t remoteServiceAdmin_handleRequest(remote_service_admin_pt rsa, char *service, char *request, char *data, char **reply) {
- hash_map_iterator_pt iter = hashMapIterator_create(rsa->exportedServices);
+celix_status_t remoteServiceAdmin_handleRequest(remote_service_admin_t rsa, char *service, char *request, char *data, char **reply) {
+ hash_map_iterator_t iter = hashMapIterator_create(rsa->exportedServices);
while (hashMapIterator_hasNext(iter)) {
- hash_map_entry_pt entry = hashMapIterator_nextEntry(iter);
- array_list_pt exports = hashMapEntry_getValue(entry);
+ hash_map_entry_t entry = hashMapIterator_nextEntry(iter);
+ array_list_t exports = hashMapEntry_getValue(entry);
int expIt = 0;
for (expIt = 0; expIt < arrayList_size(exports); expIt++) {
- export_registration_pt export = arrayList_get(exports, expIt);
+ export_registration_t export = arrayList_get(exports, expIt);
if (strcmp(service, export->endpointDescription->service) == 0) {
export->endpoint->handleRequest(export->endpoint->endpoint, request, data, reply);
}
@@ -185,34 +115,13 @@ celix_status_t remoteServiceAdmin_handle
return CELIX_SUCCESS;
}
-celix_status_t remoteServiceAdmin_exportService(remote_service_admin_pt admin, char *serviceId, properties_pt properties, array_list_pt *registrations) {
+celix_status_t remoteServiceAdmin_exportService(remote_service_admin_t admin, service_reference_t reference, properties_t properties, array_list_t *registrations) {
celix_status_t status = CELIX_SUCCESS;
arrayList_create(admin->pool, registrations);
- array_list_pt references = NULL;
- service_reference_pt reference = NULL;
- service_registration_pt registration = NULL;
- apr_pool_t *tmpPool = NULL;
-
- apr_pool_create(&tmpPool, admin->pool);
- if (tmpPool == NULL) {
- return CELIX_ENOMEM;
- } else {
- char *filter = apr_pstrcat(admin->pool, "(", (char *)SERVICE_ID, "=", serviceId, ")", NULL); /*FIXME memory leak*/
- bundleContext_getServiceReferences(admin->context, NULL, filter, &references);
- apr_pool_destroy(tmpPool);
- if (arrayList_size(references) >= 1) {
- reference = arrayList_get(references, 0);
- }
- }
-
- if (reference == NULL) {
- printf("ERROR: expected a reference for service id %s\n", serviceId);
- return CELIX_ILLEGAL_STATE;
- }
-
+ service_registration_t registration = NULL;
serviceReference_getServiceRegistration(reference, ®istration);
- properties_pt serviceProperties = NULL;
+ properties_t serviceProperties = NULL;
serviceRegistration_getProperties(registration, &serviceProperties);
char *exports = properties_get(serviceProperties, (char *) SERVICE_EXPORTED_INTERFACES);
char *provided = properties_get(serviceProperties, (char *) OBJECTCLASS);
@@ -221,13 +130,13 @@ celix_status_t remoteServiceAdmin_export
printf("RSA: No Services to export.\n");
} else {
printf("RSA: Export services (%s)\n", exports);
- array_list_pt interfaces = NULL;
+ array_list_t interfaces = NULL;
arrayList_create(admin->pool, &interfaces);
- if (strcmp(string_trim(exports), "*") == 0) {
+ if (strcmp(utils_stringTrim(exports), "*") == 0) {
char *token;
char *interface = apr_strtok(provided, ",", &token);
while (interface != NULL) {
- arrayList_add(interfaces, string_trim(interface));
+ arrayList_add(interfaces, utils_stringTrim(interface));
interface = apr_strtok(NULL, ",", &token);
}
} else {
@@ -251,7 +160,7 @@ celix_status_t remoteServiceAdmin_export
int iter = 0;
for (iter = 0; iter < arrayList_size(interfaces); iter++) {
char *interface = arrayList_get(interfaces, iter);
- export_registration_pt registration = NULL;
+ export_registration_t registration = NULL;
exportRegistration_create(admin->pool, reference, NULL, admin, admin->context, ®istration);
arrayList_add(*registrations, registration);
@@ -267,19 +176,19 @@ celix_status_t remoteServiceAdmin_export
return status;
}
-celix_status_t remoteServiceAdmin_installEndpoint(remote_service_admin_pt admin, export_registration_pt registration, service_reference_pt reference, char *interface) {
+celix_status_t remoteServiceAdmin_installEndpoint(remote_service_admin_t admin, export_registration_t registration, service_reference_t reference, char *interface) {
celix_status_t status = CELIX_SUCCESS;
- properties_pt endpointProperties = properties_create();
- properties_pt serviceProperties = NULL;
+ properties_t endpointProperties = properties_create();
+ properties_t serviceProperties = NULL;
- service_registration_pt sRegistration = NULL;
+ service_registration_t sRegistration = NULL;
serviceReference_getServiceRegistration(reference, &sRegistration);
serviceRegistration_getProperties(sRegistration, &serviceProperties);
- hash_map_iterator_pt iter = hashMapIterator_create(serviceProperties);
+ hash_map_iterator_t iter = hashMapIterator_create(serviceProperties);
while (hashMapIterator_hasNext(iter)) {
- hash_map_entry_pt entry = hashMapIterator_nextEntry(iter);
+ hash_map_entry_t entry = hashMapIterator_nextEntry(iter);
char *key = (char *) hashMapEntry_getKey(entry);
char *value = (char *) hashMapEntry_getValue(entry);
@@ -289,70 +198,29 @@ celix_status_t remoteServiceAdmin_instal
properties_set(endpointProperties, (char *) OBJECTCLASS, interface);
properties_set(endpointProperties, (char *) ENDPOINT_SERVICE_ID, serviceId);
char *uuid = NULL;
- bundleContext_getProperty(admin->context, FRAMEWORK_UUID, &uuid);
+ remoteServiceAdmin_getUUID(admin, &uuid);
properties_set(endpointProperties, (char *) ENDPOINT_FRAMEWORK_UUID, uuid);
char *service = "/services/example";
properties_set(endpointProperties, (char *) SERVICE_LOCATION, apr_pstrdup(admin->pool, service));
-
- char *url = NULL;
- constructServiceUrl(admin,interface, &url);
- printf("url is %s\n", url);
- properties_set(endpointProperties, "url", url);
- endpoint_description_pt endpointDescription = NULL;
+ endpoint_description_t endpointDescription = NULL;
remoteServiceAdmin_createEndpointDescription(admin, serviceProperties, endpointProperties, interface, &endpointDescription);
exportRegistration_setEndpointDescription(registration, endpointDescription);
return status;
}
-static celix_status_t constructServiceUrl(remote_service_admin_pt admin, char *service, char **serviceUrl) {
- celix_status_t status = CELIX_SUCCESS;
-
- if (*serviceUrl != NULL || admin == NULL || service == NULL ) {
- status = CELIX_ILLEGAL_ARGUMENT;
- } else {
- char host[APRMAXHOSTLEN + 1];
- apr_sockaddr_t *sa;
- char *ip;
-
- apr_status_t stat = apr_gethostname(host, APRMAXHOSTLEN + 1, admin->pool); /*TODO mem leak*/
- if (stat != APR_SUCCESS) {
- status = CELIX_BUNDLE_EXCEPTION;
- } else {
- stat = apr_sockaddr_info_get(&sa, host, APR_INET, 0, 0, admin->pool); /*TODO mem leak*/
- if (stat != APR_SUCCESS) {
- status = CELIX_BUNDLE_EXCEPTION;
- } else {
- stat = apr_sockaddr_ip_get(&ip, sa);
- if (stat != APR_SUCCESS) {
- status = CELIX_BUNDLE_EXCEPTION;
- } else {
- *serviceUrl = apr_pstrcat(admin->pool, "http://", ip, ":", admin->port, "/services/", service, NULL );
- }
- }
- }
- }
-
- return status;
-}
-
-
-
-celix_status_t remoteServiceAdmin_createEndpointDescription(remote_service_admin_pt admin, properties_pt serviceProperties,
- properties_pt endpointProperties, char *interface, endpoint_description_pt *description) {
+celix_status_t remoteServiceAdmin_createEndpointDescription(remote_service_admin_t admin, properties_t serviceProperties,
+ properties_t endpointProperties, char *interface, endpoint_description_t *description) {
celix_status_t status = CELIX_SUCCESS;
- apr_pool_t *childPool = NULL;
- apr_pool_create(&childPool, admin->pool);
-
- *description = apr_palloc(childPool, sizeof(*description));
+ *description = apr_palloc(admin->pool, sizeof(*description));
// *description = malloc(sizeof(*description));
if (!*description) {
status = CELIX_ENOMEM;
} else {
char *uuid = NULL;
- status = bundleContext_getProperty(admin->context, (char *)FRAMEWORK_UUID, &uuid);
+ status = bundleContext_getProperty(admin->context, ENDPOINT_FRAMEWORK_UUID, &uuid);
if (status == CELIX_SUCCESS) {
(*description)->properties = endpointProperties;
(*description)->frameworkUUID = uuid;
@@ -365,23 +233,23 @@ celix_status_t remoteServiceAdmin_create
return status;
}
-celix_status_t remoteServiceAdmin_getExportedServices(remote_service_admin_pt admin, array_list_pt *services) {
+celix_status_t remoteServiceAdmin_getExportedServices(remote_service_admin_t admin, array_list_t *services) {
celix_status_t status = CELIX_SUCCESS;
return status;
}
-celix_status_t remoteServiceAdmin_getImportedEndpoints(remote_service_admin_pt admin, array_list_pt *services) {
+celix_status_t remoteServiceAdmin_getImportedEndpoints(remote_service_admin_t admin, array_list_t *services) {
celix_status_t status = CELIX_SUCCESS;
return status;
}
-celix_status_t remoteServiceAdmin_importService(remote_service_admin_pt admin, endpoint_description_pt endpoint, import_registration_pt *registration) {
+celix_status_t remoteServiceAdmin_importService(remote_service_admin_t admin, endpoint_description_t endpoint, import_registration_t *registration) {
celix_status_t status = CELIX_SUCCESS;
printf("RSA: Import service %s\n", endpoint->service);
importRegistration_create(admin->pool, endpoint, admin, admin->context, registration);
- array_list_pt importedRegs = hashMap_get(admin->importedServices, endpoint);
+ array_list_t importedRegs = hashMap_get(admin->importedServices, endpoint);
if (importedRegs == NULL) {
arrayList_create(admin->pool, &importedRegs);
hashMap_put(admin->importedServices, endpoint, importedRegs);
@@ -395,7 +263,7 @@ celix_status_t remoteServiceAdmin_import
}
-celix_status_t exportReference_getExportedEndpoint(export_reference_pt reference, endpoint_description_pt *endpoint) {
+celix_status_t exportReference_getExportedEndpoint(export_reference_t reference, endpoint_description_t *endpoint) {
celix_status_t status = CELIX_SUCCESS;
*endpoint = reference->endpoint;
@@ -403,17 +271,34 @@ celix_status_t exportReference_getExport
return status;
}
-celix_status_t exportReference_getExportedService(export_reference_pt reference) {
+celix_status_t exportReference_getExportedService(export_reference_t reference) {
+ celix_status_t status = CELIX_SUCCESS;
+ return status;
+}
+
+celix_status_t importReference_getImportedEndpoint(import_reference_t reference) {
celix_status_t status = CELIX_SUCCESS;
return status;
}
-celix_status_t importReference_getImportedEndpoint(import_reference_pt reference) {
+celix_status_t importReference_getImportedService(import_reference_t reference) {
celix_status_t status = CELIX_SUCCESS;
return status;
}
-celix_status_t importReference_getImportedService(import_reference_pt reference) {
+celix_status_t remoteServiceAdmin_getUUID(remote_service_admin_t rsa, char **uuidStr) {
celix_status_t status = CELIX_SUCCESS;
+
+ status = bundleContext_getProperty(rsa->context, ENDPOINT_FRAMEWORK_UUID, uuidStr);
+ if (status == CELIX_SUCCESS) {
+ if (*uuidStr == NULL) {
+ apr_uuid_t uuid;
+ apr_uuid_get(&uuid);
+ *uuidStr = apr_palloc(rsa->pool, APR_UUID_FORMATTED_LENGTH + 1);
+ apr_uuid_format(*uuidStr, &uuid);
+ setenv(ENDPOINT_FRAMEWORK_UUID, *uuidStr, 1);
+ }
+ }
+
return status;
}
Modified: incubator/celix/trunk/remote_services/topology_manager/private/src/topology_manager.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/remote_services/topology_manager/private/src/topology_manager.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/remote_services/topology_manager/private/src/topology_manager.c (original)
+++ incubator/celix/trunk/remote_services/topology_manager/private/src/topology_manager.c Wed Oct 2 09:07:09 2013
@@ -74,7 +74,7 @@ celix_status_t topologyManager_create(bu
arrayList_create(pool, &(*manager)->rsaList);
(*manager)->exportedServices = hashMap_create(serviceReference_hashCode, NULL, serviceReference_equals2, NULL);
(*manager)->importedServices = hashMap_create(NULL, NULL, NULL, NULL);
- (*manager)->importInterests = hashMap_create(string_hash, NULL, string_equals, NULL);
+ (*manager)->importInterests = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
}
return status;
Modified: incubator/celix/trunk/remote_shell/private/src/remote_shell.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/remote_shell/private/src/remote_shell.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/remote_shell/private/src/remote_shell.c (original)
+++ incubator/celix/trunk/remote_shell/private/src/remote_shell.c Wed Oct 2 09:07:09 2013
@@ -228,7 +228,7 @@ static celix_status_t remoteShell_connec
if (status == CELIX_SUCCESS) {
char *dline = apr_pstrdup(workPool, command);
- char *line = string_trim(dline);
+ char *line = utils_stringTrim(dline);
int len = strlen(line);
if (len == 0) {
Modified: incubator/celix/trunk/shell/private/src/shell.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/shell/private/src/shell.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/shell/private/src/shell.c (original)
+++ incubator/celix/trunk/shell/private/src/shell.c Wed Oct 2 09:07:09 2013
@@ -93,7 +93,7 @@ static celix_status_t shell_createComman
shell_pt shell_create(apr_pool_t *pool) {
shell_pt shell = (shell_pt) malloc(sizeof(*shell));
shell->pool = pool;
- shell->commandNameMap = hashMap_create(string_hash, NULL, string_equals, NULL);
+ shell->commandNameMap = hashMap_create(utils_stringHash, NULL, utils_stringEquals, NULL);
shell->commandReferenceMap = hashMap_create(NULL, NULL, NULL, NULL);
return shell;
}
Modified: incubator/celix/trunk/shell_tui/private/src/shell_tui.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/shell_tui/private/src/shell_tui.c?rev=1528386&r1=1528385&r2=1528386&view=diff
==============================================================================
--- incubator/celix/trunk/shell_tui/private/src/shell_tui.c (original)
+++ incubator/celix/trunk/shell_tui/private/src/shell_tui.c Wed Oct 2 09:07:09 2013
@@ -62,7 +62,7 @@ static void *APR_THREAD_FUNC shellTui_ru
fgets(in, 256, stdin);
needPrompt = true;
dline = strdup(in);
- line = string_trim(dline);
+ line = utils_stringTrim(dline);
if (strlen(line) == 0) {
continue;
}