package example; import java.io.*; import java.util.*; import java.util.logging.*; import java.util.concurrent.BlockingQueue; import javax.jms.*; import javax.inject.Inject; import javax.inject.Named; public class AdProducer implements MessageListener { private static final Logger log = Logger.getLogger(AdProducer.class.getName()); private Random _random = new Random(); @Inject @Named("AdQueue") private BlockingQueue _producer; private static final String[] _ads = { "Buy widgets", "Watch this movie", "Eat at Joe's", "Learn a new trade", "Find your mate" }; public void ejbCreate() { try { String ad = _ads[_random.nextInt(_ads.length)]; _producer.put(ad); } catch (Exception e) { log.fine(e.toString()); } } public void onMessage(Message incomingMessage) { try { String ad = _ads[_random.nextInt(_ads.length)]; _producer.put(ad); } catch (Exception e) { throw new RuntimeException(e); } } }