diff --git a/ipaacalib/java/ivy.xml b/ipaacalib/java/ivy.xml index 918ed493865b6f8e4777594cdea6745b56671306..8023c27a1dc4f2f71d0d7cfcebe49d55bd8a2475 100644 --- a/ipaacalib/java/ivy.xml +++ b/ipaacalib/java/ivy.xml @@ -6,8 +6,8 @@ <dependencies> <dependency org="slf4j" name="slf4j-api" rev="latest.release" /> <dependency org="google" name="guava" rev="latest.release" /> - <dependency org="google" name="protobuf-java" rev="latest.release" /> - <dependency org="rsb" name="rsb" rev="latest.release" /> - <dependency org="lombok" name="lombok" rev="latest.release" /> + <dependency org="google" name="protobuf-java" rev="latest.release" /> + <dependency org="rsb" name="rsb" rev="latest.release" /> + <dependency org="lombok" name="lombok" rev="latest.release" /> </dependencies> </ivy-module> diff --git a/ipaacalib/java/src/ipaaca/IUEventType.java b/ipaacalib/java/src/ipaaca/IUEventType.java index fd6f481f4d9c1cdb28d220feedcb0ea15a8a4313..3cbdd639b60a3cc74a76bf8030853fd5365f8966 100644 --- a/ipaacalib/java/src/ipaaca/IUEventType.java +++ b/ipaacalib/java/src/ipaaca/IUEventType.java @@ -34,5 +34,5 @@ package ipaaca; public enum IUEventType { - ADDED, COMMITTED, DELETED, RETRACTED, UPDATED, LINKSUPDATED; + ADDED, COMMITTED, DELETED, RETRACTED, UPDATED, LINKSUPDATED, MESSAGE; } diff --git a/ipaacalib/java/src/ipaaca/InputBuffer.java b/ipaacalib/java/src/ipaaca/InputBuffer.java index b36ef565070a0eff18029fd7d22db84ee9394cf2..e5542c3d7e3ff8d8c13a5588c192ada84a435020 100644 --- a/ipaacalib/java/src/ipaaca/InputBuffer.java +++ b/ipaacalib/java/src/ipaaca/InputBuffer.java @@ -270,7 +270,9 @@ public class InputBuffer extends Buffer { RemoteMessageIU rm = (RemoteMessageIU) event.getData(); messageStore.put(rm.getUid(), rm); - callIuEventHandlers(rm.getUid(), false, IUEventType.ADDED, rm.getCategory()); + // FIXME: this is NOT according to the other language versions! + // Messages must emit IUEventType.MESSAGE - not ADDED + callIuEventHandlers(rm.getUid(),false, IUEventType.ADDED, rm.getCategory()); messageStore.remove(rm.getUid()); } else if (event.getData() instanceof RemotePushIU) diff --git a/ipaacatools/scripts/ipaaca-iu-injector.py b/ipaacatools/scripts/ipaaca-iu-injector.py index 22499958789a7ec3ec29bee4624c6e5db088d3f3..b6a56de5658860b3a469d6a6f328d9c34d7ab41f 100755 --- a/ipaacatools/scripts/ipaaca-iu-injector.py +++ b/ipaacatools/scripts/ipaaca-iu-injector.py @@ -41,26 +41,50 @@ def my_update_handler(iu, event_type, local): if len(sys.argv)<2: print "Please use the program as follows:" - print " "+sys.argv[0]+" <categoryname> [<payloadkey> <payloadvalue>] [<k2> <v2>] ..." + print " "+sys.argv[0]+" [--class IU|Message] [--timeout <sec>] <categoryname> [<payloadkey> <payloadvalue>] [<k2> <v2>] ..." sys.exit(1) -cate = sys.argv[1] -idx=2 +iu_class = 'Message' +timeout = 3.0 +idx = 1 +keep_going = True +while keep_going: + keep_going = False + if sys.argv[idx]=='--class': + t = sys.argv[idx+1] + if t in ['Message', 'IU']: + iu_class = t + else: + print "Unknown IU class: "+t + sys.exit(1) + idx += 2 + keep_going = True + elif sys.argv[idx]=='--timeout': + timeout = float(sys.argv[idx+1]) + idx += 2 + keep_going = True + +cate = sys.argv[idx] +idx += 1 pl={} while len(sys.argv)>idx+1: pl[sys.argv[idx]] = sys.argv[idx+1] idx+=2 -print "Sending Message of category "+cate +print "Sending "+iu_class+" of category "+cate print " with payload "+str(pl) ob = ipaaca.OutputBuffer('IUInjector') ob.register_handler(my_update_handler) -iu_top = ipaaca.Message(cate) +iu_top = ipaaca.IU(cate) iu_top.payload = pl ob.add(iu_top) -print "Message sent." +print iu_class+" sent." -time.sleep(0.3) +if iu_class=="IU": + print "Waiting "+str(timeout)+" sec for remote modifications..." + time.sleep(timeout) +else: + time.sleep(0.1) print "done."