celix icon indicating copy to clipboard operation
celix copied to clipboard

Filter version comparison

Open PengZheng opened this issue 3 years ago • 0 comments

    celix_filter_t *filter = celix_filter_create("(&(service.version>=1.2.2)(service.version<=1.2.2))");
    celix_properties_t *prop = celix_properties_create();
    celix_properties_set(prop, "service.version", "1.2.2.0");
    CHECK_TRUE(celix_filter_match(filter, prop)); // It fails.
    celix_properties_destroy(prop);
    celix_filter_destroy(filter);

It happens because celix_filter makes simple strcmp when dealing with <= and >=. The above makes our dm_exmaple broken, i.e., phase2b's requirement is never satisfied and thus not active:

#define PHASE1_RANGE_EXACT  "[1.2.2.0,1.2.2.0]"

        celix_dmServiceDependency_setService(dep, PHASE1_NAME, PHASE1_RANGE_EXACT, NULL);

PengZheng avatar Jul 12 '22 13:07 PengZheng