You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2020/02/10 19:43:32 UTC

[celix] branch develop updated: Updates versionRange_createLDAP functions, adds service.version as argument instead of dep.

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

pnoltes pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/celix.git


The following commit(s) were added to refs/heads/develop by this push:
     new 9c43e3a  Updates versionRange_createLDAP functions, adds service.version as argument instead of dep.
9c43e3a is described below

commit 9c43e3ad0132037e34761c1abb99f2e9639ec158
Author: Pepijn Noltes <pe...@gmail.com>
AuthorDate: Mon Feb 10 20:42:41 2020 +0100

    Updates versionRange_createLDAP functions, adds service.version as argument instead of dep.
---
 libs/framework/src/service_tracker.c           |  2 +-
 libs/utils/include/version_range.h             | 14 +++++---------
 libs/utils/private/test/version_range_test.cpp | 20 ++++++++++----------
 libs/utils/src/version_range.c                 | 23 +++++++++++------------
 4 files changed, 27 insertions(+), 32 deletions(-)

diff --git a/libs/framework/src/service_tracker.c b/libs/framework/src/service_tracker.c
index dc2140f..d2a22f9 100644
--- a/libs/framework/src/service_tracker.c
+++ b/libs/framework/src/service_tracker.c
@@ -771,7 +771,7 @@ celix_service_tracker_t* celix_serviceTracker_createWithOptions(
                     free(tracker);
                     return NULL;
                 }
-                versionRange = versionRange_createLDAPFilter(range);
+                versionRange = versionRange_createLDAPFilter(range, CELIX_FRAMEWORK_SERVICE_VERSION);
                 if(versionRange == NULL) {
                     framework_log(logger, OSGI_FRAMEWORK_LOG_ERROR, __FUNCTION__, __BASE_FILE__, __LINE__,
                                   "Error creating LDAP filter.");
diff --git a/libs/utils/include/version_range.h b/libs/utils/include/version_range.h
index b1ae07e..c549699 100644
--- a/libs/utils/include/version_range.h
+++ b/libs/utils/include/version_range.h
@@ -16,13 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/**
- * version_range.h
- *
- *  \date       Jul 12, 2010
- *  \author     <a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
- *  \copyright  Apache License, Version 2.0
- */
+
 
 #ifndef VERSION_RANGE_H_
 #define VERSION_RANGE_H_
@@ -156,9 +150,11 @@ celix_status_t versionRange_parse(const char *rangeStr, version_range_pt *range)
 /**
  * Returns the LDAP filter for a version range. Caller is owner of the returned string.
  *
+ * @param range                         The version range used as input for the LDAP filer
+ * @param serviceVersionPropertyName    The service version name to be used in the filter (i.e. service.version)
  * @return LDAP filter string if valid, NULL otherwise
  */
-char* versionRange_createLDAPFilter(version_range_pt range);
+char* versionRange_createLDAPFilter(version_range_pt range, const char *serviceVersionAttributeName);
 
 /**
  * construct a LDAP filter for the provided version range.
@@ -166,7 +162,7 @@ char* versionRange_createLDAPFilter(version_range_pt range);
  *
  * @return True if parse successful, False otherwise.
  */
-bool versionRange_createLDAPFilterInPlace(version_range_pt range, char* buffer, size_t bufferLength);
+bool versionRange_createLDAPFilterInPlace(version_range_pt range, const char *serviceVersionAttributeName, char* buffer, size_t bufferLength);
 
 
 #ifdef __cplusplus
diff --git a/libs/utils/private/test/version_range_test.cpp b/libs/utils/private/test/version_range_test.cpp
index 4ea9ded..741228e 100644
--- a/libs/utils/private/test/version_range_test.cpp
+++ b/libs/utils/private/test/version_range_test.cpp
@@ -260,7 +260,7 @@ TEST(version_range, createLdapFilterInclusiveBoth) {
     version_range_pt range = NULL;
     LONGS_EQUAL(CELIX_SUCCESS, versionRange_createVersionRange(low, true, high, true, &range));
 
-    auto filter = versionRange_createLDAPFilter(range);
+    auto filter = versionRange_createLDAPFilter(range, "service.version");
     STRCMP_EQUAL(filter, "(&(service.version>=1.2.3)(service.version<=1.2.3))");
 
     versionRange_destroy(range);
@@ -282,7 +282,7 @@ TEST(version_range, createLdapFilterInclusiveLow) {
     version_range_pt range = NULL;
     LONGS_EQUAL(CELIX_SUCCESS, versionRange_createVersionRange(low, false, high, true, &range));
 
-    auto filter = versionRange_createLDAPFilter(range);
+    auto filter = versionRange_createLDAPFilter(range, "service.version");
     STRCMP_EQUAL(filter, "(&(service.version>1.2.3)(service.version<=1.2.3))");
 
     versionRange_destroy(range);
@@ -304,7 +304,7 @@ TEST(version_range, createLdapFilterInclusiveHigh) {
     version_range_pt range = NULL;
     LONGS_EQUAL(CELIX_SUCCESS, versionRange_createVersionRange(low, true, high, false, &range));
 
-    auto filter = versionRange_createLDAPFilter(range);
+    auto filter = versionRange_createLDAPFilter(range, "service.version");
     STRCMP_EQUAL(filter, "(&(service.version>=1.2.3)(service.version<1.2.3))");
 
     versionRange_destroy(range);
@@ -326,7 +326,7 @@ TEST(version_range, createLdapFilterExclusiveBoth) {
     version_range_pt range = NULL;
     LONGS_EQUAL(CELIX_SUCCESS, versionRange_createVersionRange(low, false, high, false, &range));
 
-    auto filter = versionRange_createLDAPFilter(range);
+    auto filter = versionRange_createLDAPFilter(range, "service.version");
     STRCMP_EQUAL(filter, "(&(service.version>1.2.3)(service.version<1.2.3))");
 
     versionRange_destroy(range);
@@ -342,7 +342,7 @@ TEST(version_range, createLdapFilterInfinite) {
     version_range_pt range = NULL;
     LONGS_EQUAL(CELIX_SUCCESS, versionRange_createVersionRange(low, true, NULL, true, &range));
 
-    auto filter = versionRange_createLDAPFilter(range);
+    auto filter = versionRange_createLDAPFilter(range, "service.version");
     STRCMP_EQUAL(filter, "(&(service.version>=1.2.3))");
 
     versionRange_destroy(range);
@@ -366,7 +366,7 @@ TEST(version_range, createLdapFilterInPlaceInclusiveBoth) {
     char buffer[100];
     int bufferLen = sizeof(buffer) / sizeof(buffer[0]);
 
-    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, buffer, bufferLen));
+    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, "service.version", buffer, bufferLen));
 
     STRCMP_EQUAL(buffer, "(&(service.version>=1.2.3)(service.version<=1.2.3))");
 
@@ -391,7 +391,7 @@ TEST(version_range, createLdapFilterInPlaceInclusiveLow) {
     char buffer[100];
     int bufferLen = sizeof(buffer) / sizeof(buffer[0]);
 
-    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, buffer, bufferLen));
+    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, "service.version", buffer, bufferLen));
 
     STRCMP_EQUAL(buffer, "(&(service.version>=1.2.3)(service.version<1.2.3))");
 
@@ -416,7 +416,7 @@ TEST(version_range, createLdapFilterInPlaceInclusiveHigh) {
     char buffer[100];
     int bufferLen = sizeof(buffer) / sizeof(buffer[0]);
 
-    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, buffer, bufferLen));
+    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, "service.version", buffer, bufferLen));
 
     STRCMP_EQUAL(buffer, "(&(service.version>1.2.3)(service.version<=1.2.3))");
 
@@ -441,7 +441,7 @@ TEST(version_range, createLdapFilterInPlaceExclusiveBoth) {
     char buffer[100];
     int bufferLen = sizeof(buffer) / sizeof(buffer[0]);
 
-    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, buffer, bufferLen));
+    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, "service.version", buffer, bufferLen));
 
     STRCMP_EQUAL(buffer, "(&(service.version>1.2.3)(service.version<1.2.3))");
 
@@ -460,7 +460,7 @@ TEST(version_range, createLdapFilterInPlaceInfiniteHigh) {
     char buffer[100];
     int bufferLen = sizeof(buffer) / sizeof(buffer[0]);
 
-    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, buffer, bufferLen));
+    LONGS_EQUAL(1, versionRange_createLDAPFilterInPlace(range, "service.version", buffer, bufferLen));
 
     STRCMP_EQUAL(buffer, "(&(service.version>1.2.3))");
 
diff --git a/libs/utils/src/version_range.c b/libs/utils/src/version_range.c
index 3211463..8d5a6ee 100644
--- a/libs/utils/src/version_range.c
+++ b/libs/utils/src/version_range.c
@@ -31,7 +31,6 @@
 
 #include "version_private.h"
 #include "version_range_private.h"
-#include "../../framework/include/celix_constants.h"
 
 celix_status_t versionRange_createVersionRange(version_pt low, bool isLowInclusive,
             version_pt high, bool isHighInclusive, version_range_pt *range) {
@@ -236,19 +235,19 @@ celix_status_t versionRange_parse(const char * rangeStr, version_range_pt *range
     return status;
 }
 
-char* versionRange_createLDAPFilter(version_range_pt range) {
+char* versionRange_createLDAPFilter(version_range_pt range, const char *serviceVersionAttributeName) {
     char *output;
 
     int ret = -1;
     if(range->high == NULL) {
         ret = asprintf(&output, "(&(%s%s%i.%i.%i))",
-                       CELIX_FRAMEWORK_SERVICE_VERSION, range->isLowInclusive ? ">=" : ">", range->low->major,
+                       serviceVersionAttributeName, range->isLowInclusive ? ">=" : ">", range->low->major,
                        range->low->minor, range->low->micro);
     } else {
         ret = asprintf(&output, "(&(%s%s%i.%i.%i)(%s%s%i.%i.%i))",
-                       CELIX_FRAMEWORK_SERVICE_VERSION, range->isLowInclusive ? ">=" : ">", range->low->major,
+                       serviceVersionAttributeName, range->isLowInclusive ? ">=" : ">", range->low->major,
                        range->low->minor, range->low->micro,
-                       CELIX_FRAMEWORK_SERVICE_VERSION, range->isHighInclusive ? "<=" : "<", range->high->major,
+                       serviceVersionAttributeName, range->isHighInclusive ? "<=" : "<", range->high->major,
                        range->high->minor, range->high->micro);
     }
 
@@ -261,7 +260,7 @@ char* versionRange_createLDAPFilter(version_range_pt range) {
 
 
 
-bool versionRange_createLDAPFilterInPlace(version_range_pt range, char* buffer, size_t bufferLength) {
+bool versionRange_createLDAPFilterInPlace(version_range_pt range, const char *serviceVersionAttributeName, char* buffer, size_t bufferLength) {
     if(buffer == NULL || bufferLength == 0) {
         return false;
     }
@@ -275,13 +274,13 @@ bool versionRange_createLDAPFilterInPlace(version_range_pt range, char* buffer,
     int size = 0;
     if(range->high == NULL) {
         size = snprintf(NULL, 0, format,
-                        CELIX_FRAMEWORK_SERVICE_VERSION, range->isLowInclusive ? ">=" : ">", range->low->major,
+                        serviceVersionAttributeName, range->isLowInclusive ? ">=" : ">", range->low->major,
                         range->low->minor, range->low->micro);
     } else {
         size = snprintf(NULL, 0, format,
-                        CELIX_FRAMEWORK_SERVICE_VERSION, range->isLowInclusive ? ">=" : ">", range->low->major,
+                        serviceVersionAttributeName, range->isLowInclusive ? ">=" : ">", range->low->major,
                         range->low->minor, range->low->micro,
-                        CELIX_FRAMEWORK_SERVICE_VERSION, range->isHighInclusive ? "<=" : "<", range->high->major,
+                        serviceVersionAttributeName, range->isHighInclusive ? "<=" : "<", range->high->major,
                         range->high->minor, range->high->micro);
     }
 
@@ -292,13 +291,13 @@ bool versionRange_createLDAPFilterInPlace(version_range_pt range, char* buffer,
     // write contents into buffer
     if(range->high == NULL) {
         size = snprintf(buffer, bufferLength, format,
-                        CELIX_FRAMEWORK_SERVICE_VERSION, range->isLowInclusive ? ">=" : ">", range->low->major,
+                        serviceVersionAttributeName, range->isLowInclusive ? ">=" : ">", range->low->major,
                         range->low->minor, range->low->micro);
     } else {
         size = snprintf(buffer, bufferLength, format,
-                        CELIX_FRAMEWORK_SERVICE_VERSION, range->isLowInclusive ? ">=" : ">", range->low->major,
+                        serviceVersionAttributeName, range->isLowInclusive ? ">=" : ">", range->low->major,
                         range->low->minor, range->low->micro,
-                        CELIX_FRAMEWORK_SERVICE_VERSION, range->isHighInclusive ? "<=" : "<", range->high->major,
+                        serviceVersionAttributeName, range->isHighInclusive ? "<=" : "<", range->high->major,
                         range->high->minor, range->high->micro);
     }