org.robokind.impl.messaging
Class JMSRecordReceiver<T extends org.apache.avro.generic.IndexedRecord>

java.lang.Object
  extended by org.robokind.impl.messaging.JMSRecordReceiver<T>
All Implemented Interfaces:
org.robokind.api.messaging.RecordReceiver<T>

public class JMSRecordReceiver<T extends org.apache.avro.generic.IndexedRecord>
extends Object
implements org.robokind.api.messaging.RecordReceiver<T>

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.RecordReceiver
org.robokind.api.messaging.RecordReceiver.RecordHandler<T>
 
Constructor Summary
JMSRecordReceiver(Class<T> clazz, org.apache.avro.Schema schema, javax.jms.MessageConsumer consumer)
          Creates a new JMSRecordReceiver.
 
Method Summary
 void pause()
           
 void resume()
           
 void setRecordHandler(org.robokind.api.messaging.RecordReceiver.RecordHandler<T> 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

JMSRecordReceiver

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

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.RecordReceiver.RecordHandler<T> handler)
Specified by:
setRecordHandler in interface org.robokind.api.messaging.RecordReceiver<T extends org.apache.avro.generic.IndexedRecord>

unsetRecordHandler

public void unsetRecordHandler()
Specified by:
unsetRecordHandler in interface org.robokind.api.messaging.RecordReceiver<T 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.RecordReceiver<T 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.RecordReceiver<T extends org.apache.avro.generic.IndexedRecord>

resume

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

stop

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


Copyright © 2011. All Rights Reserved.