You can register non-visible classes in code, but it is a pain. e.g. I had the issue with a Guava type which happened to by java serializable but no easy way to implement a kryo serializer (and I don't like auto fall-back on java serialization within storm since I prefer to know when things aren't getting handled by kryo)
List serializers = (List) stormConf.get(Config.TOPOLOGY_KRYO_REGISTER); serializers.add(Collections.singletonMap( "com.google.common.collect.RegularImmutableList", SerializableSerializer. class.getName())); On Tue, Mar 25, 2014 at 11:56 AM, Vinay Pothnis <[email protected]>wrote: > Naresh, > > Cannot do that in code because the I cannot reference the private class to > register. > > Samit, > > This is actually being used indirectly. I use 'storm-rabbitmq' library ( > https://github.com/ppat/storm-rabbitmq) and that internally initializes > the rabbit mq ConnectionFactory. As part of that initialization, the > default client properties are added and that is where the > ByteArrayLongString class is being referenced. > > > http://grepcode.com/file/repo1.maven.org/maven2/com.rabbitmq/amqp-client/2.5.1/com/rabbitmq/client/impl/AMQConnection.java#AMQConnection.defaultClientProperties%28%29 > > So, kinda stuck here. > > Thanks > Vinay > > > On Tue, Mar 25, 2014 at 6:18 AM, Naresh <[email protected]> wrote: > >> Hey Vinay, >> Did you specify the kryo serialization parameter in all the yaml files on >> different supervisors? An easier way is to specify this in the code as >> Srinath had suggested. >> Regards >> Naresh >> >> On Mar 25, 2014, at 12:12 AM, Samit Sasan <[email protected]> wrote: >> >> Hey Vinay, >> >> Sorry to hear that ... before we dwell into workarounds can you describe >> what object exactly are you passing in the tuple and can you extract your >> needed info into ur custom DS object and use that instead. >> >> -Samit >> On Tue, Mar 25, 2014 at 2:38 AM, Vinay Pothnis >> <[email protected]>wrote: >> >>> com.rabbitmq.client.impl.LongStringHelper$ByteArrayLongString >> >> >> >> >
