org.robokind.impl.messaging
Class JMSAvroRecordAsyncReceiver<Rec extends org.apache.avro.generic.IndexedRecord>

java.lang.Object
  extended by org.robokind.impl.messaging.JMSAvroRecordAsyncReceiver<Rec>
Type Parameters:
Rec - type of AvroRecord to receive
All Implemented Interfaces:
org.robokind.api.messaging.RecordAsyncReceiver<Rec>

public class JMSAvroRecordAsyncReceiver<Rec extends org.apache.avro.generic.IndexedRecord>
extends Object
implements org.robokind.api.messaging.RecordAsyncReceiver<Rec>

Polls messages from a JMS Destination and attempts to deserialize them as a specific type of Avro Record. Records are then sent to a RecordHandler. When this is started it creates a new Thread for a polling loop.

Author:
Matthew Stevenson

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.robokind.api.messaging.RecordAsyncReceiver
org.robokind.api.messaging.RecordAsyncReceiver.RecordHandler<T>
 
Constructor Summary
JMSAvroRecordAsyncReceiver(Class<Rec> clazz, org.apache.avro.Schema schema, javax.jms.MessageConsumer consumer)
          Creates a new JMSAvroRecordAsyncReceiver.
 
Method Summary
 void pause()
           
 void resume()
           
 void setRecordHandler(org.robokind.api.messaging.RecordAsyncReceiver.RecordHandler<Rec> handler)
           
 void start()
          Creates and starts an Polling Thread to fetch Records over JMS.
 void stop()
           
 void unsetRecordHandler()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JMSAvroRecordAsyncReceiver

public JMSAvroRecordAsyncReceiver(Class<Rec> clazz,
                                  org.apache.avro.Schema schema,
                                  javax.jms.MessageConsumer consumer)
Creates a new JMSAvroRecordAsyncReceiver.

Parameters:
clazz - Class of the Avro Record being received
schema - Avro Schema or the Record being received
consumer - JMS MessageConsumer to fetch the Record
Method Detail

setRecordHandler

public void setRecordHandler(org.robokind.api.messaging.RecordAsyncReceiver.RecordHandler<Rec> handler)
Specified by:
setRecordHandler in interface org.robokind.api.messaging.RecordAsyncReceiver<Rec extends org.apache.avro.generic.IndexedRecord>

unsetRecordHandler

public void unsetRecordHandler()
Specified by:
unsetRecordHandler in interface org.robokind.api.messaging.RecordAsyncReceiver<Rec extends org.apache.avro.generic.IndexedRecord>

start

public void start()
           throws IllegalStateException
Creates and starts an Polling Thread to fetch Records over JMS.

Specified by:
start in interface org.robokind.api.messaging.RecordAsyncReceiver<Rec extends org.apache.avro.generic.IndexedRecord>
Throws:
IllegalStateException - if RecordHandler is not set

pause

public void pause()
Specified by:
pause in interface org.robokind.api.messaging.RecordAsyncReceiver<Rec extends org.apache.avro.generic.IndexedRecord>

resume

public void resume()
Specified by:
resume in interface org.robokind.api.messaging.RecordAsyncReceiver<Rec extends org.apache.avro.generic.IndexedRecord>

stop

public void stop()
Specified by:
stop in interface org.robokind.api.messaging.RecordAsyncReceiver<Rec extends org.apache.avro.generic.IndexedRecord>


Copyright © 2011-2013. All Rights Reserved.