private void RunAssertionEventsProcessed(RegressionEnvironment env) { var listenerMap = new SupportListenerTimerHRes(); var listenerBean = new SupportListenerTimerHRes(); var listenerXML = new SupportListenerTimerHRes(); var listenerOA = new SupportListenerTimerHRes(); var listenerJson = new SupportListenerTimerHRes(); env.CompileDeploy("@Name('s0') select SupportStaticMethodLib.Sleep(100) from MyMap").Statement("s0").AddListener(listenerMap); env.CompileDeploy("@Name('s1') select SupportStaticMethodLib.Sleep(100) from SupportBean").Statement("s1").AddListener(listenerBean); env.CompileDeploy("@Name('s2') select SupportStaticMethodLib.Sleep(100) from XMLType").Statement("s2").AddListener(listenerXML); env.CompileDeploy("@Name('s3') select SupportStaticMethodLib.Sleep(100) from MyOA").Statement("s3").AddListener(listenerOA); env.CompileDeploy( "@public @buseventtype create json schema JsonEvent();\n" + "@Name('s4') select SupportStaticMethodLib.Sleep(100) from JsonEvent") .Statement("s4") .AddListener(listenerJson); var senderMap = env.EventService.GetEventSender("MyMap"); var senderBean = env.EventService.GetEventSender("SupportBean"); var senderXML = env.EventService.GetEventSender("XMLType"); var senderOA = env.EventService.GetEventSender("MyOA"); var senderJson = env.EventService.GetEventSender("JsonEvent"); long start = PerformanceObserver.MicroTime; for (var i = 0; i < 2; i++) { env.SendEventMap(new Dictionary<string, object>(), "MyMap"); senderMap.SendEvent(new Dictionary<string, object>()); env.SendEventBean(new SupportBean()); senderBean.SendEvent(new SupportBean()); env.SendEventXMLDOM(SupportXML.GetDocument("<myevent/>"), "XMLType"); senderXML.SendEvent(SupportXML.GetDocument("<myevent/>")); env.SendEventObjectArray(new object[0], "MyOA"); senderOA.SendEvent(new object[0]); env.SendEventJson("{}", "JsonEvent"); senderJson.SendEvent("{}"); } long end = PerformanceObserver.MicroTime; var delta = (end - start) / 1000; Assert.IsTrue(delta < 500); Thread.Sleep(1000); foreach (var listener in Arrays.AsList(listenerMap, listenerBean, listenerXML, listenerOA, listenerJson)) { Assert.AreEqual(4, listener.NewEvents.Count); } var spi = (EPRuntimeSPI) env.Runtime; Assert.AreEqual(0, spi.ServicesContext.ThreadingService.InboundQueue.Count); Assert.IsNotNull(spi.ServicesContext.ThreadingService.InboundThreadPool); env.UndeployAll(); }
public void Run(RegressionEnvironment env) { SendTimer(0, env); log.Debug("Creating statements"); var countStatements = 100; var listener = new SupportListenerTimerHRes(); var compiled = env.Compile( "select SupportStaticMethodLib.Sleep(10) from pattern[every MyMap -> timer:interval(1)]"); for (var i = 0; i < countStatements; i++) { var stmtName = "s" + i; env.Deploy(compiled, new DeploymentOptions().WithStatementNameRuntime(ctx => stmtName)); env.Statement(stmtName).AddListener(listener); } log.Info("Sending trigger event"); env.SendEventMap(new Dictionary<string, object>(), "MyMap"); var start = PerformanceObserver.NanoTime; SendTimer(1000, env); var end = PerformanceObserver.NanoTime; var delta = (end - start) / 1000000; Assert.That(delta, Is.LessThan(100), "Delta is " + delta); // wait for delivery while (true) { var countDelivered = listener.NewEvents.Count; if (countDelivered == countStatements) { break; } log.Info("Delivered " + countDelivered + ", waiting for more"); try { Thread.Sleep(200); } catch (ThreadInterruptedException e) { throw new EPException(e); } } Assert.AreEqual(100, listener.NewEvents.Count); // analyze result //List<Pair<Long, EventBean[]>> events = listener.getNewEvents(); //OccuranceResult result = OccuranceAnalyzer.analyze(events, new long[] {100 * 1000 * 1000L, 10*1000 * 1000L}); //log.info(result); }
public void Run(RegressionEnvironment env) { log.Debug("Creating statements"); var countStatements = 100; var listener = new SupportListenerTimerHRes(); var compiled = env.Compile("select SupportStaticMethodLib.Sleep(10) from SupportBean"); for (var i = 0; i < countStatements; i++) { var stmtName = "s" + i; env.Deploy(compiled, new DeploymentOptions().WithStatementNameRuntime(ctx => stmtName)); env.Statement(stmtName).AddListener(listener); } log.Info("Sending trigger event"); var start = PerformanceObserver.NanoTime; env.SendEventBean(new SupportBean()); var end = PerformanceObserver.NanoTime; var delta = (end - start) / 1000000; Assert.That(delta, Is.LessThan(100), "Delta is " + delta); try { Thread.Sleep(2000); } catch (ThreadInterruptedException e) { throw new EPException(e); } Assert.AreEqual(100, listener.NewEvents.Count); listener.NewEvents.Clear(); // destroy all statements env.UndeployAll(); env.CompileDeploy("@Name('s0') select SupportStaticMethodLib.Sleep(10) from SupportBean, SupportBean"); env.Statement("s0").AddListener(listener); env.SendEventBean(new SupportBean()); try { Thread.Sleep(100); } catch (ThreadInterruptedException e) { throw new EPException(e); } Assert.AreEqual(1, listener.NewEvents.Count); env.UndeployAll(); }