@Test @RedisAvailable public void testInt3015ExplicitSerializer() throws Exception { final String queueName = "si.test.testRedisQueueOutboundChannelAdapter2"; final RedisQueueOutboundChannelAdapter handler = new RedisQueueOutboundChannelAdapter(queueName, this.connectionFactory); handler.setSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class)); RedisTemplate<String, ?> redisTemplate = new StringRedisTemplate(); redisTemplate.setConnectionFactory(this.connectionFactory); redisTemplate.afterPropertiesSet(); handler.handleMessage(new GenericMessage<Object>(Arrays.asList("foo", "bar", "baz"))); Object result = redisTemplate.boundListOps(queueName).rightPop(5000, TimeUnit.MILLISECONDS); assertNotNull(result); assertEquals("[\"foo\",\"bar\",\"baz\"]", result); handler.handleMessage(new GenericMessage<Object>("test")); result = redisTemplate.boundListOps(queueName).rightPop(5000, TimeUnit.MILLISECONDS); assertNotNull(result); assertEquals("\"test\"", result); }
@Override protected void onInit() { super.onInit(); if (this.evaluationContext == null) { this.evaluationContext = ExpressionUtils.createStandardEvaluationContext(getBeanFactory()); } }
@Test @RedisAvailable public void testInt3015ExtractPayloadFalse() throws Exception { final String queueName = "si.test.testRedisQueueOutboundChannelAdapter2"; final RedisQueueOutboundChannelAdapter handler = new RedisQueueOutboundChannelAdapter(queueName, this.connectionFactory); handler.setExtractPayload(false); Message<String> message = MessageBuilder.withPayload("testing").build(); handler.handleMessage(message); RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>(); redisTemplate.setConnectionFactory(this.connectionFactory); redisTemplate.setEnableDefaultSerializer(false); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer()); redisTemplate.afterPropertiesSet(); Object result = redisTemplate.boundListOps(queueName).rightPop(5000, TimeUnit.MILLISECONDS); assertNotNull(result); assertEquals(message, result); }
@Test @RedisAvailable public void testInt3932LeftPushFalse() throws Exception { final String queueName = "si.test.Int3932LeftPushFalse"; final RedisQueueOutboundChannelAdapter handler = new RedisQueueOutboundChannelAdapter(queueName, this.connectionFactory); handler.setLeftPush(false); String payload = "testing"; handler.handleMessage(MessageBuilder.withPayload(payload).build()); Date payload2 = new Date(); handler.handleMessage(MessageBuilder.withPayload(payload2).build()); RedisTemplate<String, ?> redisTemplate = new StringRedisTemplate(); redisTemplate.setConnectionFactory(this.connectionFactory); redisTemplate.afterPropertiesSet(); Object result = redisTemplate.boundListOps(queueName).leftPop(5000, TimeUnit.MILLISECONDS); assertNotNull(result); assertEquals(payload, result); RedisTemplate<String, ?> redisTemplate2 = new RedisTemplate<String, Object>(); redisTemplate2.setConnectionFactory(this.connectionFactory); redisTemplate2.setEnableDefaultSerializer(false); redisTemplate2.setKeySerializer(new StringRedisSerializer()); redisTemplate2.setValueSerializer(new JdkSerializationRedisSerializer()); redisTemplate2.afterPropertiesSet(); Object result2 = redisTemplate2.boundListOps(queueName).leftPop(5000, TimeUnit.MILLISECONDS); assertNotNull(result2); assertEquals(payload2, result2); }
@Test @RedisAvailable public void testInt3015Default() throws Exception { final String queueName = "si.test.testRedisQueueOutboundChannelAdapter"; final RedisQueueOutboundChannelAdapter handler = new RedisQueueOutboundChannelAdapter(queueName, this.connectionFactory); String payload = "testing"; handler.handleMessage(MessageBuilder.withPayload(payload).build()); RedisTemplate<String, ?> redisTemplate = new StringRedisTemplate(); redisTemplate.setConnectionFactory(this.connectionFactory); redisTemplate.afterPropertiesSet(); Object result = redisTemplate.boundListOps(queueName).rightPop(5000, TimeUnit.MILLISECONDS); assertNotNull(result); assertEquals(payload, result); Date payload2 = new Date(); handler.handleMessage(MessageBuilder.withPayload(payload2).build()); RedisTemplate<String, ?> redisTemplate2 = new RedisTemplate<String, Object>(); redisTemplate2.setConnectionFactory(this.connectionFactory); redisTemplate2.setEnableDefaultSerializer(false); redisTemplate2.setKeySerializer(new StringRedisSerializer()); redisTemplate2.setValueSerializer(new JdkSerializationRedisSerializer()); redisTemplate2.afterPropertiesSet(); Object result2 = redisTemplate2.boundListOps(queueName).rightPop(5000, TimeUnit.MILLISECONDS); assertNotNull(result2); assertEquals(payload2, result2); }
@Bean @ServiceActivator(inputChannel = Sink.INPUT) public MessageHandler redisSinkMessageHandler() { if (this.redisSinkProperties.isKey()) { RedisStoreWritingMessageHandler redisStoreWritingMessageHandler = new RedisStoreWritingMessageHandler( this.redisConnectionFactory); redisStoreWritingMessageHandler.setKeyExpression(this.redisSinkProperties.keyExpression()); return redisStoreWritingMessageHandler; } else if (this.redisSinkProperties.isQueue()) { return new RedisQueueOutboundChannelAdapter(this.redisSinkProperties.queueExpression(), this.redisConnectionFactory); } else { // must be topic RedisPublishingMessageHandler redisPublishingMessageHandler = new RedisPublishingMessageHandler( this.redisConnectionFactory); redisPublishingMessageHandler.setTopicExpression(this.redisSinkProperties.topicExpression()); return redisPublishingMessageHandler; } }
@Override protected void onInit() { super.onInit(); if (this.evaluationContext == null) { this.evaluationContext = ExpressionUtils.createStandardEvaluationContext(getBeanFactory()); } }