/**
* Project: EnTiMid
* Copyright: INRIA/IRISA 2011
* Contributor(s) :
* Author: barais
*/
package org.kevoree.library.esper;
import org.kevoree.annotation.*;
import org.kevoree.framework.AbstractComponentType;
import org.kevoree.framework.MessagePort;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Random;
/**
* This Kevoree component encapsulates Esper.
* @author Olivier Barais
* @copyright INRIA
*/
@Requires({
@RequiredPort(name = "fakeEvent", type = PortType.MESSAGE)
})
@Library(name = "Kevoree::Esper")
@ComponentType
public class EsperTestComponent extends AbstractComponentType {
private Logger logger = LoggerFactory.getLogger(EsperTestComponent.class);
@Start
public void start() {
for (int i = 0; i < 20; i++) {
GenerateRandomTick();
}
}
@Stop
public void stop() {
}
@Update
public void update() {
for (int i = 0; i < 20; i++) {
GenerateRandomTick();
}
}
public void send( Tick tick) {
if (this.isPortBinded("fakeEvent")) {
this.getPortByName("fakeEvent", MessagePort.class).process(tick);
}
}
private Random generator = new Random();
public void GenerateRandomTick() {
double price = (double) generator.nextInt(10);
long timeStamp = System.currentTimeMillis();
String symbol = "AAPL";
Tick tick = new Tick(symbol, price, timeStamp);
logger.info("Sending tick:" + tick);
send(tick);
}
}