Apologies for the ugly original post.

I have set up a simple route to isolate the string serialization problem
that 
I am experiencing, like others, the problem where the default jdk serializer
prepends "junk" at the start of the key and value, making it
difficult/impossible to perform integration testing.

There is a description of the serialization issue
http://stackoverflow.com/questions/32245916/redis-serialization-prefixed-with-extra-string.

Is it even possible to run this "spring-data" component within Blueprint?

I am using Blueprint and am struggling to get the following route working
from a Junit test.  

<?xml version="1.0" encoding="UTF-8"?> 

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
           xsi:schemaLocation=" 
       http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
       http://camel.apache.org/schema/blueprint
http://camel.apache.org/schema/spring/camel-blueprint.xsd";>

  <bean id="redisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
    <property name="hostName" value="${redis.host}" />
    <property name="port" value="${redis.port}"/>
  </bean>

  <bean 
    id="stringSerializer" 
   
class="org.springframework.data.redis.serializer.StringRedisSerializer"/>

  <bean 
    id="i4pRedisTemplate" 
    class="org.springframework.data.redis.core.RedisTemplate">
    <property name="defaultSerializer" ref="stringSerializer"/>
    <property name="connectionFactory" ref="redisConnectionFactory"/>
  </bean>

  <routeContext id="camel-redis-route-context"
xmlns="http://camel.apache.org/schema/blueprint";>

    <route id="camel-redis-route">
      <from uri="direct:redis"/>
      <log loggingLevel="INFO" message="Just about to call redis with
${in.headers}"/>
      <to uri="spring-redis://x?redisTemplate=#i4pRedisTemplate"
id="callRedisWithHeaders"/>
    </route>

  </routeContext>

</blueprint>

When I run the unit test I get the following messages.

2016-06-14 15:43:27,223 [int Extender: 1] ERROR BlueprintContainerImpl        
- Unable to start blueprint container for bundle IncrementCounterTest/1.0.0
org.osgi.service.blueprint.container.ComponentDefinitionException: Error
setting property: PropertyDescriptor <name: defaultSerializer, getter: class
org.springframework.data.redis.core.RedisTemplate.getDefaultSerializer(),
setter: [class
org.springframework.data.redis.core.RedisTemplate.setDefaultSerializer(interface
org.springframework.data.redis.serializer.RedisSerializer)]
        at
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:939)[org.apache.aries.blueprint.core-1.4.4.jar:1.4.4]
        at
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:905)[org.apache.aries.blueprint.core-1.4.4.jar:1.4.4]
        at
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:886)[org.apache.aries.blueprint.core-1.4.4.jar:1.4.4]

and further down the stack trace


java.lang.RuntimeException: Error setting property: PropertyDescriptor
<name: defaultSerializer, getter: class
org.springframework.data.redis.core.RedisTemplate.getDefaultSerializer(),
setter: [class
org.springframework.data.redis.core.RedisTemplate.setDefaultSerializer(interface
org.springframework.data.redis.serializer.RedisSerializer)]

        at
org.apache.camel.test.blueprint.CamelBlueprintHelper.waitForBlueprintContainer(CamelBlueprintHelper.java:343)
        at
org.apache.camel.test.blueprint.CamelBlueprintTestSupport.createBundleContext(CamelBlueprintTestSupport.java:154)
        at
org.apache.camel.test.blueprint.CamelBlueprintTestSupport.setUp(CamelBlueprintTestSupport.java:220)
        at
integration.technology.i4ip.counter.IncrementCounterTest.setUp(IncrementCounterTest.java:32)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
        at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        

I suspect the Bean definitions and references are the problem.  Or the # in
the uri?

I would love to see a working Blueprint example but I cannot seem to find
one which leads me to believe I am heading in the wrong direction with
Blueprint and Spring components.

Thanks for any help,

Owain.  



--
View this message in context: 
http://camel.465427.n5.nabble.com/Repost-Unable-to-configure-component-spring-redis-RedisTemplate-with-Blueprint-XML-tp5784053.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to