diff --git a/litmus-cache/src/main/java/com/navi/medici/cache/RedisCache.java b/litmus-cache/src/main/java/com/navi/medici/cache/RedisCache.java index 28acd0b..3b1a0f2 100644 --- a/litmus-cache/src/main/java/com/navi/medici/cache/RedisCache.java +++ b/litmus-cache/src/main/java/com/navi/medici/cache/RedisCache.java @@ -4,6 +4,7 @@ import com.navi.medici.command.CacheCommands; import com.navi.medici.config.RedisConfiguration; import lombok.RequiredArgsConstructor; import org.redisson.api.RBloomFilter; +import org.redisson.api.RMap; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Component; @@ -39,4 +40,16 @@ public class RedisCache implements CacheCommands { public Boolean delete(String bucket) { return redissonClient.getBucket(bucket).delete(); } + + @Override + public String get(String map, String key) { + RMap rm = redissonClient.getMap(map); + return rm.get(key); + } + + @Override + public void put(String map, String key, String value) { + RMap rm = redissonClient.getMap(map); + rm.put(key, value); + } } diff --git a/litmus-cache/src/main/java/com/navi/medici/command/CacheCommands.java b/litmus-cache/src/main/java/com/navi/medici/command/CacheCommands.java index 801395f..4de6a68 100644 --- a/litmus-cache/src/main/java/com/navi/medici/command/CacheCommands.java +++ b/litmus-cache/src/main/java/com/navi/medici/command/CacheCommands.java @@ -12,4 +12,8 @@ public interface CacheCommands { Boolean contains(RBloomFilter bf, String key); Boolean delete(String bucket); + + String get(String map, String key); + + void put(String map, String key, String value); } diff --git a/litmus-cache/src/main/java/com/navi/medici/container/RedisContainer.java b/litmus-cache/src/main/java/com/navi/medici/container/RedisContainer.java index 9eeb91a..5276876 100644 --- a/litmus-cache/src/main/java/com/navi/medici/container/RedisContainer.java +++ b/litmus-cache/src/main/java/com/navi/medici/container/RedisContainer.java @@ -19,7 +19,6 @@ public class RedisContainer { Config c = new Config(); c.useSingleServer() .setAddress(String.format("redis://%s:%s", redisConfiguration.getRedisHost(), redisConfiguration.getRedisPort())); - return Redisson.create(c); } diff --git a/litmus-client/src/main/java/com/navi/medici/litmus/DefaultLitmus.java b/litmus-client/src/main/java/com/navi/medici/litmus/DefaultLitmus.java index 46edd0b..79f719f 100644 --- a/litmus-client/src/main/java/com/navi/medici/litmus/DefaultLitmus.java +++ b/litmus-client/src/main/java/com/navi/medici/litmus/DefaultLitmus.java @@ -139,16 +139,14 @@ public class DefaultLitmus implements Litmus { experimentName, strategy.getName()); } - var result = configuredStrategy.isEnabled( + return configuredStrategy.isEnabled( strategy.getParameters(), context, strategy.getConstraints()); - this.eventDispatcher.publish(context, litmusExperiment, result); - - return result; }); } + this.eventDispatcher.publish(context, litmusExperiment, enabled); return enabled; } diff --git a/litmus-client/src/main/java/com/navi/medici/strategy/DeviceWithIdStrategy.java b/litmus-client/src/main/java/com/navi/medici/strategy/DeviceWithIdStrategy.java index 8562022..14603af 100644 --- a/litmus-client/src/main/java/com/navi/medici/strategy/DeviceWithIdStrategy.java +++ b/litmus-client/src/main/java/com/navi/medici/strategy/DeviceWithIdStrategy.java @@ -31,7 +31,7 @@ public class DeviceWithIdStrategy implements Strategy { var segmentName = parameters.get(SEGMENT); var result = experimentFetcher.segmentIdExists(segmentName, litmusContext.getDeviceId().orElse(null)); - return result.getData() != null && result.getData(); + return result.getData() != null && (Boolean) result.getData(); } } diff --git a/litmus-client/src/main/java/com/navi/medici/strategy/UserWithIdStrategy.java b/litmus-client/src/main/java/com/navi/medici/strategy/UserWithIdStrategy.java index 3853493..b25953e 100644 --- a/litmus-client/src/main/java/com/navi/medici/strategy/UserWithIdStrategy.java +++ b/litmus-client/src/main/java/com/navi/medici/strategy/UserWithIdStrategy.java @@ -31,7 +31,7 @@ public class UserWithIdStrategy implements Strategy { var segmentName = parameters.get(SEGMENT); var result = experimentFetcher.segmentIdExists(segmentName, litmusContext.getUserId().orElse(null)); - return result.getData() != null && result.getData(); + return result.getData() != null && (Boolean) result.getData(); } } diff --git a/litmus-core/src/main/java/com/navi/medici/service/segment/SegmentServiceImpl.java b/litmus-core/src/main/java/com/navi/medici/service/segment/SegmentServiceImpl.java index 35b981b..288ed4d 100644 --- a/litmus-core/src/main/java/com/navi/medici/service/segment/SegmentServiceImpl.java +++ b/litmus-core/src/main/java/com/navi/medici/service/segment/SegmentServiceImpl.java @@ -31,14 +31,11 @@ public class SegmentServiceImpl implements SegmentService { s3Service.upload(file, destinationBucketName); List segmentCsvList = csvUtil.csvToList(file); - var bfCreated = cacheCommands.reserveBF(segmentRequest.getName()); - var bloomFilter = cacheCommands.getBf(segmentRequest.getName()); +// var bfCreated = cacheCommands.reserveBF(segmentRequest.getName()); +// var bloomFilter = cacheCommands.getBf(segmentRequest.getName()); log.info("ingesting data to bloom filter. segment_name: {}", segmentRequest.getName()); - segmentCsvList.forEach(segment ->{ - var temp = cacheCommands.add(bloomFilter, segment.getSegmentId()); - log.info("key: {}, result: {}", segment.getSegmentId(), temp); - }); + segmentCsvList.forEach(segment ->cacheCommands.put(segmentRequest.getName(), segment.getSegmentId(), "true")); var segmentEntity = SegmentEntity.builder() .segmentId(UUID.randomUUID().toString()) @@ -53,10 +50,10 @@ public class SegmentServiceImpl implements SegmentService { @Override public Boolean segmentIdExist(String segmentName, String id) { - var bloomFilter = cacheCommands.getBf(segmentName); +// var bloomFilter = cacheCommands.getBf(segmentName); - var result = cacheCommands.contains(bloomFilter, id); + var result = cacheCommands.get(segmentName, id); - return result; + return result != null; } } diff --git a/litmus-core/src/main/resources/application.properties b/litmus-core/src/main/resources/application.properties index c415da0..e0e1dea 100644 --- a/litmus-core/src/main/resources/application.properties +++ b/litmus-core/src/main/resources/application.properties @@ -1,3 +1,4 @@ +server.port = ${PORT:12000} spring.datasource.hikari.maximum-pool-size=${DB_POOL_MAX_SIZE:2} spring.datasource.hikari.minimum-idle=${DB_POOL_MIN_IDLE:1} spring.datasource.hikari.idle-timeout=${DB_POOL_IDLE_TIMEOUT_IN_MS:30000} @@ -18,12 +19,12 @@ kafka.auditlog.topic=${AUDIT_LOG_TOPIC:audit-logs} kms.base-url=${KMS_BASE_URL:http://google.com} -redis.host=127.0.0.1 +redis.host=${REDIS_HOST:127.0.0.1} redis.port=6379 redis.expected.insertions=99999 redis.false.probability=0.001 -server.port = 12000 + segment.s3.bucket=navi-test report.s3.region=temp \ No newline at end of file diff --git a/litmus-mock/src/main/java/com/navi/medici/controller/MockController.java b/litmus-mock/src/main/java/com/navi/medici/controller/MockController.java index 029785c..ca5d639 100644 --- a/litmus-mock/src/main/java/com/navi/medici/controller/MockController.java +++ b/litmus-mock/src/main/java/com/navi/medici/controller/MockController.java @@ -18,8 +18,7 @@ public class MockController { @GetMapping("/mock") public String test(@RequestParam("experiment") String experiment) { - var context = LitmusContext.builder().addProperty("cc", "5").build(); - var result = litmus.isEnabled(experiment, context); + var result = litmus.isEnabled(experiment); log.info("result ----> {}", result); return "result ==> " + result; diff --git a/litmus-proxy/src/main/resources/application.properties b/litmus-proxy/src/main/resources/application.properties index 2bfc9fd..25de0e9 100644 --- a/litmus-proxy/src/main/resources/application.properties +++ b/litmus-proxy/src/main/resources/application.properties @@ -1,4 +1,4 @@ -server.port=13000 +server.port=${PORT:13000} spring.datasource.hikari.maximum-pool-size=${DB_POOL_MAX_SIZE:2} spring.datasource.hikari.minimum-idle=${DB_POOL_MIN_IDLE:1} diff --git a/local.env b/local.env index 6dbbdee..2904fd1 100644 --- a/local.env +++ b/local.env @@ -1,3 +1,4 @@ DATASOURCE_URL=jdbc:postgresql://dev-db-service-db.np.navi-tech.in:5432/litmus DATASOURCE_USERNAME=service_user -DATASOURCE_PASSWORD=JRCFCMXUXBJHGZVTPBNTXHYCCFVMWN \ No newline at end of file +DATASOURCE_PASSWORD=JRCFCMXUXBJHGZVTPBNTXHYCCFVMWN +REDIS_HOST=dev-env-redis.twod4l.0001.aps1.cache.amazonaws.com \ No newline at end of file