celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bjoern Petri <bjoern.pe...@sundevil.de>
Subject Re: svn commit: r1632480 - in /celix/trunk/remote_services/discovery_etcd/private/src: discovery_impl.c etcd_watcher.c
Date Fri, 17 Oct 2014 13:25:15 GMT

Ah - sorry, I just see that you refer to the commit from this morning. A 
minute before I saw your mail, I committed some more changes which also 
seems to fix this issue (at least I cannot reproduce it). I was already 
wondering how fast you are checking commits :).

Regards,
   Bjoern



On 2014-10-17 15:05, Alexander Broekhuis wrote:
> Hi Bjoern,
> 
> I think you forgot to add a file to the commit. It is not building for 
> me:
> 
> remote_services/discovery_etcd/private/src/etcd_watcher.c:237:16: 
> error:
> conflicting types for ‘etcdWatcher_create’
> celix_status_t etcdWatcher_create(discovery_pt discovery, 
> bundle_context_pt
> context,
> 
> remote_services/discovery_etcd/private/include/etcd_watcher.h:36:16: 
> note:
> previous declaration of ‘etcdWatcher_create’ was here
> celix_status_t etcdWatcher_create(endpoint_discovery_poller_pt poller,
> bundle_context_pt context, etcd_watcher_pt *watcher);
> 
> 
> 2014-10-17 3:16 GMT-04:00 <bpetri@apache.org>:
> 
>> Author: bpetri
>> Date: Fri Oct 17 07:16:29 2014
>> New Revision: 1632480
>> 
>> URL: http://svn.apache.org/r1632480
>> Log:
>> CELIX-168: Added new property DISCOVERY_ETCD_ROOT_PATH, which allows 
>> to
>> change the etcd root path
>> 
>> Modified:
>>     
>> celix/trunk/remote_services/discovery_etcd/private/src/discovery_impl.c
>>     
>> celix/trunk/remote_services/discovery_etcd/private/src/etcd_watcher.c
>> 
>> Modified:
>> celix/trunk/remote_services/discovery_etcd/private/src/discovery_impl.c
>> URL:
>> http://svn.apache.org/viewvc/celix/trunk/remote_services/discovery_etcd/private/src/discovery_impl.c?rev=1632480&r1=1632479&r2=1632480&view=diff
>> 
>> ==============================================================================
>> ---
>> celix/trunk/remote_services/discovery_etcd/private/src/discovery_impl.c
>> (original)
>> +++
>> celix/trunk/remote_services/discovery_etcd/private/src/discovery_impl.c 
>> Fri
>> Oct 17 07:16:29 2014
>> @@ -124,12 +124,12 @@ celix_status_t discovery_start(discovery
>>         return CELIX_BUNDLE_EXCEPTION;
>>      }
>> 
>> -    status = etcdWatcher_create(discovery->poller, 
>> discovery->context,
>> &discovery->watcher);
>> +    status = endpointDiscoveryServer_create(discovery,
>> discovery->context, &discovery->server);
>>      if (status != CELIX_SUCCESS) {
>> -       return CELIX_BUNDLE_EXCEPTION;
>> +               return CELIX_BUNDLE_EXCEPTION;
>>      }
>> 
>> -    status = endpointDiscoveryServer_create(discovery,
>> discovery->context, &discovery->server);
>> +    status = etcdWatcher_create(discovery, discovery->context,
>> &discovery->watcher);
>>      if (status != CELIX_SUCCESS) {
>>         return CELIX_BUNDLE_EXCEPTION;
>>      }
>> @@ -140,12 +140,12 @@ celix_status_t discovery_start(discovery
>>  celix_status_t discovery_stop(discovery_pt discovery) {
>>         celix_status_t status;
>> 
>> -       status = endpointDiscoveryServer_destroy(discovery->server);
>> +       status = etcdWatcher_destroy(discovery->watcher);
>>         if (status != CELIX_SUCCESS) {
>>                 return CELIX_BUNDLE_EXCEPTION;
>>         }
>> 
>> -       status = etcdWatcher_destroy(discovery->watcher);
>> +       status = endpointDiscoveryServer_destroy(discovery->server);
>>         if (status != CELIX_SUCCESS) {
>>                 return CELIX_BUNDLE_EXCEPTION;
>>         }
>> 
>> Modified:
>> celix/trunk/remote_services/discovery_etcd/private/src/etcd_watcher.c
>> URL:
>> http://svn.apache.org/viewvc/celix/trunk/remote_services/discovery_etcd/private/src/etcd_watcher.c?rev=1632480&r1=1632479&r2=1632480&view=diff
>> 
>> ==============================================================================
>> --- 
>> celix/trunk/remote_services/discovery_etcd/private/src/etcd_watcher.c
>> (original)
>> +++ 
>> celix/trunk/remote_services/discovery_etcd/private/src/etcd_watcher.c
>> Fri Oct 17 07:16:29 2014
>> @@ -38,8 +38,7 @@
>>  #include "endpoint_discovery_poller.h"
>> 
>>  struct etcd_watcher {
>> -       endpoint_discovery_poller_pt poller;
>> -       bundle_context_pt context;
>> +    discovery_pt discovery;
>> 
>>         celix_thread_mutex_t watcherLock;
>>         celix_thread_t watcherThread;
>> @@ -47,6 +46,9 @@ struct etcd_watcher {
>>         volatile bool running;
>>  };
>> 
>> +#define CFG_ETCD_ROOT_PATH             "DISCOVERY_ETCD_ROOT_PATH"
>> +#define DEFAULT_ETCD_ROOTPATH  "discovery"
>> +
>>  #define CFG_ETCD_SERVER_IP             "DISCOVERY_ETCD_SERVER_IP"
>>  #define DEFAULT_ETCD_SERVER_IP "127.0.0.1"
>> 
>> @@ -59,10 +61,16 @@ struct etcd_watcher {
>> 
>> 
>>  // note that the rootNode shouldn't have a leading slash
>> -static celix_status_t etcdWatcher_getRootPath(char* rootNode) {
>> +static celix_status_t etcdWatcher_getRootPath(bundle_context_pt 
>> context,
>> char* rootNode) {
>>         celix_status_t status = CELIX_SUCCESS;
>> +       char* rootPath = NULL;
>> 
>> -       strcpy(rootNode, "discovery");
>> +       if (((bundleContext_getProperty(context, CFG_ETCD_ROOT_PATH,
>> &rootPath)) != CELIX_SUCCESS) || (!rootPath)) {
>> +               strcpy(rootNode, DEFAULT_ETCD_ROOTPATH);
>> +       }
>> +       else {
>> +               strcpy(rootNode, rootPath);
>> +       }
>> 
>>         return status;
>>  }
>> @@ -73,7 +81,7 @@ static celix_status_t etcdWatcher_getLoc
>>         char rootPath[MAX_ROOTNODE_LENGTH];
>>      char* uuid = NULL;
>> 
>> -    if (((etcdWatcher_getRootPath(&rootPath[0]) != CELIX_SUCCESS)) ||
>> (!rootPath)) {
>> +    if ((etcdWatcher_getRootPath(context, &rootPath[0]) !=
>> CELIX_SUCCESS)) {
>>                 status = CELIX_ILLEGAL_STATE;
>>      }
>>         else if (((bundleContext_getProperty(context,
>> OSGI_FRAMEWORK_FRAMEWORK_UUID, &uuid)) != CELIX_SUCCESS) || (!uuid)) {
>> @@ -95,7 +103,7 @@ static celix_status_t etcdWatcher_getLoc
>>   * returns the modifiedIndex of the last modified
>>   * discovery endpoint (see etcd documentation).
>>   */
>> -static celix_status_t
>> etcdWatcher_addAlreadyExistingWatchpoints(endpoint_discovery_poller_pt
>> poller, int* highestModified) {
>> +static celix_status_t
>> etcdWatcher_addAlreadyExistingWatchpoints(discovery_pt discovery, int*
>> highestModified) {
>>         celix_status_t status = CELIX_SUCCESS;
>>         char** nodeArr = calloc(MAX_NODES, sizeof(*nodeArr));
>>         char rootPath[MAX_ROOTNODE_LENGTH];
>> @@ -108,7 +116,7 @@ static celix_status_t etcdWatcher_addAlr
>>         }
>> 
>>         // we need to go though all nodes and get the highest 
>> modifiedIndex
>> -       if (((status = etcdWatcher_getRootPath(&rootPath[0])) ==
>> CELIX_SUCCESS) &&
>> +       if (((status = etcdWatcher_getRootPath(discovery->context,
>> &rootPath[0])) == CELIX_SUCCESS) &&
>>                  (etcd_getNodes(rootPath, nodeArr, &size) == true)) {
>>                 for (i = 0; i < size; i++) {
>>                         char* key = nodeArr[i];
>> @@ -118,7 +126,7 @@ static celix_status_t etcdWatcher_addAlr
>> 
>>                         if (etcd_get(key, &value[0], &action[0],
>> &modIndex) == true) {
>>                                 // check that this is not equals to 
>> the
>> local endpoint
>> -
>>  endpointDiscoveryPoller_addDiscoveryEndpoint(poller, 
>> strdup(&value[0]));
>> +
>>  endpointDiscoveryPoller_addDiscoveryEndpoint(discovery->poller,
>> strdup(&value[0]));
>> 
>>                                 if (modIndex > *highestModified) {
>>                                         *highestModified = modIndex;
>> @@ -193,8 +201,11 @@ static void* etcdWatcher_run(void* data)
>>         static char rootPath[MAX_ROOTNODE_LENGTH];
>>         int highestModified = 0;
>> 
>> -       etcdWatcher_addAlreadyExistingWatchpoints(watcher->poller,
>> &highestModified);
>> -       etcdWatcher_getRootPath(&rootPath[0]);
>> +       bundle_context_pt context = watcher->discovery->context;
>> +       endpoint_discovery_poller_pt poller = 
>> watcher->discovery->poller;
>> +
>> +       etcdWatcher_addAlreadyExistingWatchpoints(watcher->discovery,
>> &highestModified);
>> +       etcdWatcher_getRootPath(context, &rootPath[0]);
>> 
>>         while (watcher->running) {
>>                 char value[MAX_VALUE_LENGTH];
>> @@ -204,16 +215,16 @@ static void* etcdWatcher_run(void* data)
>>                 if (etcd_watch(rootPath, highestModified + 1, 
>> &action[0],
>> &preValue[0], &value[0]) == true) {
>> 
>>                         if (strcmp(action, "set") == 0) {
>> -
>>  endpointDiscoveryPoller_removeDiscoveryEndpoint(watcher->poller,
>> &preValue[0]);
>> -
>>  endpointDiscoveryPoller_addDiscoveryEndpoint(watcher->poller, 
>> &value[0]);
>> +
>>  endpointDiscoveryPoller_removeDiscoveryEndpoint(poller, 
>> &preValue[0]);
>> +
>>  endpointDiscoveryPoller_addDiscoveryEndpoint(poller, &value[0]);
>>                         } else if (strcmp(action, "delete") == 0) {
>> -
>>  endpointDiscoveryPoller_removeDiscoveryEndpoint(watcher->poller,
>> &preValue[0]);
>> +
>>  endpointDiscoveryPoller_removeDiscoveryEndpoint(poller, 
>> &preValue[0]);
>>                         } else {
>>                                 fw_log(logger, 
>> OSGI_FRAMEWORK_LOG_INFO,
>> "Unexpected action: %s", action);
>>                         }
>>                 }
>>                 // update own framework uuid in any case;
>> -           etcdWatcher_addOwnFramework(watcher->context);
>> +           etcdWatcher_addOwnFramework(context);
>>         }
>> 
>>         return NULL;
>> @@ -223,7 +234,7 @@ static void* etcdWatcher_run(void* data)
>>   * the ectdWatcher needs to have access to the 
>> endpoint_discovery_poller
>> and therefore is only
>>   * allowed to be created after the endpoint_discovery_poller
>>   */
>> -celix_status_t etcdWatcher_create(endpoint_discovery_poller_pt 
>> poller,
>> bundle_context_pt context,
>> +celix_status_t etcdWatcher_create(discovery_pt discovery,
>> bundle_context_pt context,
>>                 etcd_watcher_pt *watcher)
>>  {
>>         celix_status_t status = CELIX_SUCCESS;
>> @@ -232,7 +243,7 @@ celix_status_t etcdWatcher_create(endpoi
>>         char* etcd_port_string = NULL;
>>         int etcd_port = 0;
>> 
>> -       if (poller == NULL) {
>> +       if (discovery == NULL) {
>>                 return CELIX_BUNDLE_EXCEPTION;
>>         }
>> 
>> @@ -242,8 +253,7 @@ celix_status_t etcdWatcher_create(endpoi
>>         }
>>         else
>>         {
>> -               (*watcher)->poller = poller;
>> -               (*watcher)->context = context;
>> +               (*watcher)->discovery = discovery;
>>         }
>> 
>>         if ((bundleContext_getProperty(context, CFG_ETCD_SERVER_IP,
>> &etcd_server) != CELIX_SUCCESS) || !etcd_server) {
>> @@ -263,8 +273,6 @@ celix_status_t etcdWatcher_create(endpoi
>>                 }
>>         }
>> 
>> -
>> -
>>         if (etcd_init(etcd_server, etcd_port) == false)
>>         {
>>                 return CELIX_BUNDLE_EXCEPTION;
>> @@ -302,7 +310,8 @@ celix_status_t etcdWatcher_destroy(etcd_
>>         celixThread_join(watcher->watcherThread, NULL);
>> 
>>         // register own framework
>> -       if ((status = etcdWatcher_getLocalNodePath(watcher->context,
>> &localNodePath[0])) != CELIX_SUCCESS) {
>> +       if ((status = etcdWatcher_getLocalNodePath(
>> +                       watcher->discovery->context, 
>> &localNodePath[0]))
>> != CELIX_SUCCESS) {
>>                 return status;
>>         }
>> 
>> 
>> 
>> 

Mime
View raw message