Hi,

I am facing issue while trying to extend any out of the box Ignite classes. I 
am trying to extend DataStreamerImpl class and overriding addData(K,V) method 
to do extra processing before saving it to cache.
I did not find bean definitions defined in Bean configuration file except 
Ignite configuration in Ignite.

If I need to extend any bean which has parametrized constructor then I had to 
define that constructor of base class into my child class. I passed constructor 
argument through Bean configuration file.

public CustomStreamer(
               final GridKernalContext ctx,
               @Nullable final String cacheName,
               DelayQueue<DataStreamerImpl<K, V>> flushQ) {
              super(ctx, cacheName, flushQ);
       }

<bean id="igniteStreamer" 
class="org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl"/>
<bean id="kafkaStreamer" class="com.ignite.streamer.CustomStreamer " 
parent="igniteStreamer">
              <constructor-arg ref="ignite.ctx" index="0"/>
              <constructor-arg type="java.lang.String" value="igfs-data" 
index="1"/>
              <constructor-arg ref="delayQueue" index="2"/>
</bean>

But then it gave error for GridKernalContextImpl class like no default 
constructor defined which got resolved when I extended this class and defined 
parameterized constructor. But then again it contains many objects in 
constructor for which I again have to define beans and constructor arguments.

I wanted to confirm if this is the right approach or am I missing anything here.

Thanks,
Saurabh

Reply via email to