1
4 package nl.justobjects.pushlet.test;
5
6 import nl.justobjects.pushlet.core.Event;
7 import nl.justobjects.pushlet.core.EventPullSource;
8 import nl.justobjects.pushlet.core.SessionManager;
9 import nl.justobjects.pushlet.util.Rand;
10
11
12
18public class TestEventPullSources {
19
20
23 static public class TemperatureEventPullSource extends EventPullSource {
24 String[] cities = {"amsterdam", null, "rotterdam", null,
25 "leeuwarden", null, "twente", null, "limburg", null};
26
27 public long getSleepTime() {
28 return Rand.randomLong(3000, 5000);
29 }
30
31 public Event pullEvent() {
32 int cityNumber = Rand.randomInt(0, (cities.length) / 2 - 1);
33 int nextCityIndex = 2 * cityNumber;
34
35 Event event = Event.createDataEvent("/temperature");
36
37 event.setField("number", "" + cityNumber);
38 event.setField("city", cities[nextCityIndex]);
39 if (cities[nextCityIndex + 1] == null) {
40 cities[nextCityIndex + 1] = "" + Rand.randomInt(5, 10);
41 }
42 int currentCityValue = new Integer(cities[nextCityIndex + 1]).intValue();
43 int newCityValue = currentCityValue + Rand.randomInt(-2, 2);
44
45 event.setField("value", "" + newCityValue);
46 return event;
47 }
48 }
49
50
53 static public class PingEventPullSource extends EventPullSource {
54 public long getSleepTime() {
55 return 3000;
56 }
57
58 public Event pullEvent() {
59
60 return Event.createDataEvent("/pushlet/ping");
61 }
62 }
63
64
67 static public class SystemStatusEventPullSource extends EventPullSource {
68 Runtime runtime = Runtime.getRuntime();
69
70 public long getSleepTime() {
71 return 4000;
72 }
73
74 public Event pullEvent() {
75 Event event = Event.createDataEvent("/system/jvm");
76 event.setField("totalMemory", "" + runtime.totalMemory());
77 event.setField("freeMemory", "" + runtime.freeMemory());
78 event.setField("maxMemory", "" + runtime.maxMemory());
79 int activeCount = Thread.activeCount();
80 event.setField("threads", "" + activeCount);
81
82 return event;
83 }
84 }
85
86
89 static public class PushletStatusEventPullSource extends EventPullSource {
90
91 public long getSleepTime() {
92 return 5000;
93 }
94
95 public Event pullEvent() {
96 Event event = Event.createDataEvent("/system/pushlet");
97 event.setField("publisher", "" + SessionManager.getInstance().getStatus());
99 return event;
00 }
01 }
02
03
04
07 static public class AEXStocksEventPullSource extends EventPullSource {
08
09 String[] stocks = {"abn amro", "26",
10 "aegon", "38",
11 "ahold", "34",
12 "akzo nobel", "51",
13 "asm lith h", "26",
14 "corus plc", "2",
15 "dsm", "40",
16 "elsevier", "14",
17 "fortis (nl)", "32",
18 "getronics", "6",
19 "gucci", "94",
20 "hagemeyer", "25",
21 "heineken", "61",
22 "ing c", "78",
23 "klm", "66",
24 "kon olie", "66",
25 "kpn", "13",
26 "numico c", "44",
27 "philips, kon", "38",
28 "tnt", "26",
29 "unilever c", "62",
30 "vendex kbb", "16",
31 "vnu", "49",
32 "wolt-kluw c", "25"};
33
34 public long getSleepTime() {
35 return Rand.randomLong(2000, 4000);
36 }
37
38 public Event pullEvent() {
39 Event event = Event.createDataEvent("/stocks/aex");
40 int stockNumber = Rand.randomInt(0, (stocks.length) / 2 - 1);
41 int nextStockIndex = 2 * stockNumber;
42
43 event.setField("number", "" + stockNumber);
44 event.setField("name", stocks[nextStockIndex]);
45 if (stocks[nextStockIndex + 1] == null) {
46 stocks[nextStockIndex + 1] = "" + Rand.randomInt(50, 150);
47 }
48 int currentStockValue = new Integer(stocks[nextStockIndex + 1]).intValue();
49 int newStockValue = currentStockValue + Rand.randomInt(-2, 2);
50
51 event.setField("rate", "" + newStockValue + "." + Rand.randomInt(0, 99));
52 return event;
53 }
54
55 }
56
57
60 static public class WebPresentationEventPullSource extends EventPullSource {
61 String slideRootDir = "http://www.justobjects.org/cowcatcher/browse/j2ee/slides/";
62 String[] slideURLs = {
63 "ejb/j2ee/ejbover/slide.0.0.html",
64 "ejb/j2ee/ejbover/slide.0.1.html",
65 "ejb/j2ee/ejbover/slide.0.2.html",
66 "ejb/j2ee/ejbover/slide.0.3.html",
67 "ejb/j2ee/ejbover/slide.0.4.html"
68 };
69
70 int nextSlideNumber = 0;
71
72 public long getSleepTime() {
73 return 5000;
74 }
75
76 public Event pullEvent() {
77 Event event = Event.createDataEvent("/webpres/auto");
78 event.setField("url", slideRootDir + slideURLs[nextSlideNumber++]);
79 if (nextSlideNumber == slideURLs.length) {
80 nextSlideNumber = 0;
81 }
82 return event;
84 }
85 }
86
87
90 static public class TestEventPullSource extends EventPullSource {
91 private int number = 0;
92
93 public long getSleepTime() {
94 return 2000;
95 }
96
97 public Event pullEvent() {
98 Event event = Event.createDataEvent("/system/test");
99 event.setField("nr", "" + (number++));
01 event.setField("time", "" + System.currentTimeMillis());
02 return event;
03 }
04
05 }
06
07
10 public static void e(String s) {
11 System.out.println(s);
12 }
13
14
17 public static void p(String s) {
18 }
20}
21
22
74