1 package org.myoodb.events; 25 26 public class Client implements Runnable 27 { 28 public static int PORT = 54321; 29 public static String USERNAME = "admin"; 30 public static String PASSWORD = "admin"; 31 public static Thread LISTEN_THREAD = null; 32 33 public static org.myoodb.MyOodbDatabase THE_DB = null; 34 35 public static void main(String args[]) throws Exception 36 { 37 org.myoodb.MyOodbDatabase db = THE_DB = org.myoodb.MyOodbDatabase.open("myoodb://localhost:" + PORT, USERNAME, PASSWORD); 38 39 org.myoodb.collectable.LinkedList persons = (org.myoodb.collectable.LinkedList) db.getRoot("Persons"); 40 41 if (persons == null) 42 { 43 persons = (org.myoodb.collectable.LinkedList) db.createRoot(org.myoodb.collectable.LinkedListDbImpl.class, "Persons"); 44 } 46 47 Person person = (Person) db.createObject(PersonDbImpl.class); 48 person.setName("John Smith"); 50 51 persons.add(person); 52 53 org.myoodb.event.EventLog eventLog = (org.myoodb.event.EventLog) db.getRoot("EventLog"); 54 55 if (eventLog == null) 56 { 57 eventLog = (org.myoodb.event.EventLog) db.createRoot(org.myoodb.event.EventLogDbImpl.class, "EventLog"); 58 } 60 61 LISTEN_THREAD = new Thread (new Client()); 62 LISTEN_THREAD.setDaemon(true); 63 LISTEN_THREAD.start(); 64 65 for (int i = 0; i < 100; i++) 66 { 67 MessageEvent messageEvent = (MessageEvent) db.createObject(MessageEventDbImpl.class); 68 69 messageEvent.setMessage("Did you clean the basement?"); 70 messageEvent.setLogStore(eventLog); 71 72 messageEvent.notify(person); 73 74 Thread.sleep(1000); 75 } 76 } 77 78 public void run() 79 { 80 try 81 { 82 org.myoodb.event.EventLog eventLog = (org.myoodb.event.EventLog) THE_DB.getRoot("EventLog"); 83 84 while (LISTEN_THREAD != null) 85 { 86 java.util.ArrayList events = eventLog.listenForEvents(MessageEvent.class); 87 89 for (int i = 0; i < events.size(); i++) 90 { 91 MessageEvent messageEvent = (MessageEvent) events.get(i); 92 93 Person person = (Person) THE_DB.getObject(messageEvent.getCollectableHandle()); 94 95 System.out.println("Message: " + messageEvent + " To: " + person); 96 } 97 } 98 } 99 catch (Exception e) 100 { 101 e.printStackTrace(); 102 } 103 } 104 } 105 | Popular Tags |