001    package org.otfeed.j2ee.mdb;
002    
003    import java.util.EnumSet;
004    
005    import javax.ejb.EJBException;
006    import javax.ejb.MessageDrivenBean;
007    import javax.ejb.MessageDrivenContext;
008    import javax.jms.Message;
009    import javax.jms.MessageListener;
010    
011    import org.otfeed.command.VolumeStyleEnum;
012    import org.otfeed.event.OTError;
013    import org.otfeed.protocol.DataEnum;
014    import org.otfeed.support.alt.IMessageListener;
015    
016    import org.slf4j.Logger;
017    import org.slf4j.LoggerFactory;
018    
019    public class OtfeedMDB implements MessageDrivenBean, MessageListener, IMessageListener {
020            
021            private static final long serialVersionUID = 3485153366625806676L;
022            
023            private static final Logger LOG = LoggerFactory.getLogger(OtfeedMDB.class);
024    
025            public void ejbCreate() {
026                    
027            }
028            
029            public void ejbRemove() throws EJBException {
030            }
031    
032            public void setMessageDrivenContext(MessageDrivenContext ctx)
033                            throws EJBException {
034            }
035    
036            public void onInit(ISubscriber subscriber) {
037                    LOG.info("initializing subscriptions");
038                    subscriber.subscribeToTickStream("Q", "MSFT", 
039                                    VolumeStyleEnum.COMPOUND, 
040                                    EnumSet.of(DataEnum.TRADE, DataEnum.QUOTE));
041            }
042    
043            public void onData(Object data) {
044                    LOG.info("received: {}", data);
045            }
046    
047            public void onShutdown(OTError error) {
048                    LOG.info("subscription ended: {}", error);
049            }
050    
051            public void onMessage(Message message) {
052                    LOG.info("JMS message arrived: {}", message);
053            }
054    
055    }