rendered paste body @Test public void test_ShouldReceiveNotifications() throws RemoteException, NotBoundException { Registry reg = LocateRegistry.getRegistry(1099); IDBServer server = (IDBServer) reg.lookup( RmiUtility.getObjectNameForInstance(0)); TestRmiSubscriber subscriber = new TestRmiSubscriber(RmiUtility.getObjectNameForInstance(0)); TestRmiSubscriber subscriber2 = new TestRmiSubscriber(RmiUtility.getObjectNameForInstance(0)); TestUtility.setupRmiNotificationScenario(server); server.insert("persons", "1", "j. bauer"); server.insert("heroes", "1", "batman"); assertEquals(2, subscriber.getModificationsForTable("*", DatabaseModificationAction.Unknown)); assertEquals(2, subscriber2.getModificationsForTable("*", DatabaseModificationAction.Unknown)); // update's and deletes server.update("persons", new ColumnValue("id","1"), new ColumnValue("id","jack bauer")); server.delete("heroes", new ColumnValue("id","batman")); server.delete("heroes", new ColumnValue("id","1")); assertEquals(1, subscriber.getModificationsForTable("*", DatabaseModificationAction.Update)); assertEquals(1, subscriber2.getModificationsForTable("*", DatabaseModificationAction.Update)); assertEquals(1, subscriber.getModificationsForTable("*", DatabaseModificationAction.Delete)); assertEquals(1, subscriber2.getModificationsForTable("*", DatabaseModificationAction.Delete)); }// subscriber: public TestRmiSubscriber(String serverName) throws RemoteException, NotBoundException { UnicastRemoteObject.exportObject(this,0); Registry reg = LocateRegistry.getRegistry(1099); IDBServer server = (IDBServer) reg.lookup( serverName ); server.getNotificationProvider().optInSubscriber(this); } public void receive(IDatabaseModification modification) { modifications.add(modification); System.out.println("received modification"); }// ergebnis:/*DBServer boundsubscriber added, count now 1subscriber added, count now 1received modification; distributed 0 timesreceived modification; distributed 0 timesdeleted ./personsdeleted ./heroes*/