! " #! "
$ ## # # % #! & '()
*! # ' # + (++ # ) # # , # -
*!" . ,, & // - 0
0 & '() ! # #1
'2 # & '() #
! & '() # #
3 4 & '() + + 5
& '() #1# 6
'2 + 7 +! . ,, # # + & 5 # 6
& '() 1 # 1 # 8
& '() + #
0 & '() . ,, +! # 0
# & '() % / 3
'2 + 7 # # # 2# # +! . ,, # 9
0 '2 + 0 :1 1 #
'2 + $ ## # # # ++ # #! 1 ! & '()
'2 + ; # # # # #! 1 ! & '() % #! #% +# 9
3 '2 + 3 ,1/ ! < 71/ / # 5 # 0
9 '2 + 9 # ++ # # 5 #" 0
6 '2 + 6 4 & '() # # # # # / 0
0 & '() # / ! 5 1 0
0 ,1/ ! < 1/ / 0
0 ,1/ ! < 1/ / ! # 0
0 = #! & '() 0
0 = " . ,, # 0
0 71/ / # ! 0
0 = #! & '() 0
0 = " . ,, # 0
0 0 7 # +1/> 1/ ! 00
0 0 = #! & '() 00
0 0 = " . ,, # 00
0 $ ## #! # 1/ / 1 # 0
0 = #! & '() 0
0 = " . ,, # 0
0 $ ## #! # #! 1/ + ? % # 5 1 0
0 = #! & '() 0
0 = " . ,, # 0
0 4 @+ ( +# # # # #! & '() + # 0
; /1 0
4 . ,, # # /1 ++ # 0
' / & '() /1 0
; /1 #! 5 7 ## 1+ & '() /1 0
; /1 #! # ; /1 . ,, +# / ! 5 1 1 /1
0
(++ 2 03
A # " 03
B 09
0 C 1 09
0 '2 + 09
0 &'();1 + D 5 09
0 &'() # D 5
0 '2 +
0 '2 + + +
0 '2 + #2#
0 0 '2 + 0
0 '2 +
0 & // 7 1 + +
0 '2 +
0 & // 7 1 + +
0 & // 7 + + 3
& '() ' # + ) # # , # ! " #
! 1 # / + + E 1 # E 1 2#
5 + # #! & '() + #
! 1 # 5 # " / + 5 , E # E :1 #
5 1# :1 # # #! & '() #
( ' # + (++ # ) # # + # # # # F # #
# )# # " + # # # # E # ! ! 5 E
#
' # + (++ # ) # # # ' # + 7 5 G1 H'7GIE %! #! #
# # / # + # . B / # 2 !
'() ++ # # # / 5 " 1 1 # " # # 2#E %! #! " %
# # # " ++ # # % " 5 +
& '() ! / /1 # # 1 ! #! )# 1 ! #! # # # " ++ # )#
+ # # # + # #! # / + # ++ # 5 ! + #
# 1 #1 #! # + 5 5 # ++ # #! # # # #! /1 )# # # #
#! # & '() ! ! " 5 # 5 + 1 # #! # / 1 # /1 % 5 # 5 ++ # =
2 +
, + ! 5 / # 2# #! . ,, + # % #! # #
)# #!1 + / # # # J 1# K #! E #! +!" % E # #!
# )# + / # 5 + 2# # & '() # # # 5
1 / #! # ! %! # % # % +1/ !
1/ /
C + ! 5 /1 # /1 1 . ,, +1/ ! 1/ / ! # +1 !
5 1 # # 1/ / #
* 1 + 5 5 5 # 5 1 & '() + / ++ # )# % #! # #! #
" 1 ! 5 /1 " 1 # " # 1 . B /1 1 ! & '()E " 1 # 1 /
++ #1 # # # 2+ # #! # # % " #! # " 1 % 1 # ! 5
/
& '() # D1 # # " " # /1# ++ #1 #" # 5 % 1 /"
/ 2 # # #
& '() / 5 !1/ %! # 1 2 # 5 + 1 #! & '() /1 ! "
# ! 5 # % %! #! 5 # E %! 1 #E 5 # 1 # "
( #! " ! 5 # % %! # #! 5 # # %! # #! 5 # & '()
#! # 1# #! 5 # #! + + ++ # E #! # + #!
! / 1# # 5 ++ # / +1/ !
1/ / # /1# ! HC! / # # / I
* #! #! ! # #1 E #! /1 / # # " / #% #! ++ # > 5
# # #! !1/ ' ! ! #! E 1 5 #! + # E % #! 1# 5
! 5 # % %! ! #! 5 H7 = 1 I
& '() # #! '7G # " # # / H)' = . ,,I / . B
!" #
'() # # # " /1 # % #! + + # " # # + #
. BG # 1 # % . B + # )# # F E #!1 . BG # ! #
+
& 7 # " # # # & 5 H # # # % #! CLL /1# :1 + + # " # % " I
A % 5 E ' # + (++ # ) # # / 1# # + / #" ! " 1 1 !
# #
@ #! #! ! E & '() #! # '() /1 # / 5
. ,, # . B + # # 2 ! / #% # 5 )# ! ! "
2# / # + # " #! '()
& // # # + # /1 1+ #! . ,, + # #! # + 5 #!
/ #" #! /1 # #! . ,, + #
& // / # # # & '() ## !1 / # #! & //
" 2+ " # " 5 / & // HC # E 5 E / E
+ 1 E 2# E # # + # E I & '() # 5 # #! % #! 2 #
#! . ,,
( E " #! & // >. ,, + # # 5 " 1 #% #1
*! # E :1 1 / # 5 # ?
#
# ++ # ! ! 1 + # '() #1
% ++ # # # / + # #1 ! #! ++ #
! 1 . ,, 5 + # # + # #1 & '() # #! # + E "
# % # # + #
$
& '() 1 # # # % #! +1# " # + 5 # #
++ #
4 . ,, + # % & '() # / ! ! " # /1# / E % #! #! 1++ # #! %
!
1 # E #! 1 ! #! 5
# # #
! H # &', 3 I
! / .+ #!
C # & '() /1 # 5 + # 5 ! " # " 1 #! . ,, + #
# # # #! & '() # /1 ! . ,, + # . B / ! &
'() 1 / " ++ # E % ## " +1# 1 '5 " 1
+ / # # 1 & '()E /1# #! !1 1 /
. ,, ! + / " +1# 1 #! # & '() # 5 + #
#! # 5 ; 5 + ! # # ! # 1 & 5 / # # #!
# /1 1 & '() / / 2 & 5 ! + # # #1 #! # &
'() 1 / 5 #1 " " + D #
1# #1 1# # E #! #
/ 1# / #% 5 & '() 5 E 1 # # ! . ,,
+ # # / # /1# # ! + # # #1
# + # # # 2 !
G /1 # + #! @+ # , # H@ ,>' IE & '() #! %
#1
# # 1 # " #! & '() +1#
( +1#
! ( # 1 # 5 #! & '()
" # & '() / 7 / #" # # #! # #! $ # #
%
7" # ! # #1 /1 % #! & '() 5 " 2 / 5 " " # # 0 # +
# # :1 #
7 5 ! # #1 # / /1 % #! & '() ! 1 # % /
@ , % 5 + /" ' # /1 # 1 # # # " # @ , + 5 #1 #% J! #
1+ K # 5 #% # 1+#
0 * E " E + / / " " E & '() # + # # / 5 "#! 5 "
5 ! # #1 #! # / 5 " " + # #! # & '() , ## / #!
+ + # 5 # # " 5 5 # " # )# + " 2+ %! #
# # #! + ## % ! % # + " # " # # 5 1#
% &
& '() ! " 5 # # # # % #! & '() + # / % #! #! # #
/1 #! @+ ( +# + D # ! 1
; # / # #! 1 ! &;GCE
; # # 2# #E
= 2 #! # 2# #E
)GC@ F 5 1 E
)G M7 E
( #! # # 5 / # # + # " E 1 ! 2 +
= " # E
A ,E
= ,E
7 , H I
)# + / # 2 # 1 E 2 + E # + # + # 2# #
5 / #! 1 ! = , D # #! # # #! & '() /1
' ( #
( 5 E & '() + 5 % / # # 1 E E # # #!
5 )# ! / /1 # # + N % E # +# / A , 5 E %! ! / #
#! & // 5
) * + #
! 1 2+ ! % # 1 & '() #! + + C; @ 5 # ! C; @
# # / + # " + " 1 ! 5 47G " / 1 2 # " #!
% "
& '() C; @ 1 # + # )# / # " 1 5 1 + # " # B 12E
# * % @7.
& '() C; @ / % !##+ >>%%% + D # >
& '() N % 8 7 !##+ >>" % !"/ >
! #% :1 # # 1 #! & '() /1 A % 5 E " 1 % # # 1 & 5 /
# 1 #! & 5 / . ,, #E " 1 # ! 5 & 5 5 #1 ! #
" 1 +1#
N 1 1 ! # & '() + # /" 1 ! #! D +# B 123
@7. # * % = 2 + B 12 @7.
$ ./j-eai.sh
# * %
> j-eai.bat
( # 2# % / + E /1# " 1 # #! / ! 5 1 1 # & '() # "
" % / / % /" + #! % 4 B H = 1 I
http://localhost:6080/
7
71 " # & 5 # % # /1# + # " # 1 71 & 5 5 #1 !
3 ) " 1 + # " # 1 # # % " 1 # 1 ! #% #! C; @ E " 1 ! 5 #% +#
C +" #! # # #! C; @ %! " 1 ! 5 E
C! " 1 > # > # / # # #! 2 +# #! C; @ 5 +# = 2 +
/dev/cdrom /cdrom iso9660 ro,user,noauto,exec 0 0
9 @ " # E #! ! # % O# % 1 #! + 9 #
! 5 + 1 # / 1 / ! & '() /1 # # # #
1+ # 1 " 1 % +1# ! #! # " 1 ! 5 # 1 & '() 5 ! # !
1 # 1 1 1 # 1
( # # 1 % #! 1 # & '() H ! #I
! 1 H E E ! I #! # ! 5 " # !#
% #! #! & '() /1 ! #! 1 #! # / 1 /" " # ++ #
# # & '()
1 1
++ ++
++ ++
! "
! 1 # + # #! ## #! & '() #1#
& '() / 1 1 #% # (,)
. ,, (,) ! ++ ! 5 / +1# 1 / 1 # #
++ #
& 5 @+ ( +# (,) ) " 1 ! 5 # F " 1 # " # & 5 E " 1 1
+ #! & 5 @+ ( +# ++ ! # # " 1 + # # & '()
! #1# % #! + # 2 + #! # 1 / #! ++ !
= #! 2 + E #! & '() 5 1 # / 1+ 1 7 # 9 # ! % #
1 ! #! & '() 5
@ #! 5 # #! & '() + # #! # # " #! . ,, + # ( #
1++ # #! . ,, + # / 1 # # # #! & '() /1 E # # 5
! 1 1 / #! # # # /1 # # " 1 # " # E /1# #
# # !1 O # ++ # % % 1 #! & '() + # ! & '()
#1# ! % #! # " 1 1 5 1 1 # # # #! & '() + #
& , - # !"
! & '() /1 + 5 % #! + # ! # + " # # & '() #!
! 1 H+ % # I + " + # 1# #! # # # #!
1
7# # & '() 2+ # 9
B #! &'() % / H+ % # I $$ %&'&$ # $ H7
= 1 I
( ) #
0 $ # #! ( 4 C #! 1 1 ! #! # ## 7 #
#! 1 # # 1 # H= 1 I ! % 1/ / / #! 1 #
! #! + ! " % #!1 / / # % %! ! #! # ! # +
% 2 ! / #% 1 / #! # 6
6 ( 1#1 5 & '() % / # #1 #! ! )# % / + / # %
5 1 # #! /1# + 5 # # / # #! #! % " 1 ! #1 " /1 # & '() /1#
# 5 / #! & '() % /
* " #
7 # # & 5 + #! 4 P #Q + #!QD Q Q / #P # * % P 1
#Q + #!QD Q Q + P B 12 @7. H7 = 1 3I
+ " #
7# # #! # + # java org.p1.JEAITest H7 = 1 9I
% , - # .
/
!"##
7# # + 5 . ,, & 5 # &G #! java -jar lib/jbother/JBother-
0.8.4b.jar H= 1 6I
B #! & '() # 1 1 % #! &G #! , % 1 5
9 H= 1 8I
0 N 1 ! 1 #! 1 # # 5 / H= 1 I ; 1/ #!
1 # + #! % %
' 0 1 2344
5 1 2344
"+ # 2# #! % % ! % #! #! # " ! %
#! 1 ! & '() # #! + #
& 1 2344
#
B # #! 1 # #! &'() # # #
1 2344 # #
! 6 # #
$ "
$ # #! ( # #! & '() % / N 1 #!1
2 ! / #% &G #! . ,, # #! + & 5 # H 1 I
! & 5 & '() # # # + #%
&'();1 +
&'() #
! #! & 5 & '() # # # 5 / #! (++ 2 #! 1 #
( 7 3
& , - # # # # & !"
! 2 + ! % ! % # # #! # ## # # # 2# #! #
# # 5 . ,, # # # & '()
! # # 2# + #! E + % #! #
; #
?
! / # # + 5 # . B #E ; # @/D # ) #1 E #! # 1 /
5 # # " #! # / # . B + # #
= 1 ! % #! & '() ! # #1 1 2 + ? # #! # 5 + # #
#! # # #! " # '5 "#! ! / /" 1 & '()
#
7# # & '() 2+ # 9
7# # &/ #! # H7 = 1 8 = 1 + I
java -jar lib/jbother/JBother-0.8.4b.jar
0 = ! E # #! &'() $ ) # 7# # #! # % #! #
) # !
java org.openadaptor.adaptor.RunAdaptor example2.props A
# # & '() #! # 1 / ) # !
N 1 ! 1 5 #! H + E / #! # # #!
* ) # !
) # ! ) I
B # #! #! & '() % / H( # I # ! #! #
# " % #! 1 ! & '() #! # #! " + + " H7 = 1 0I
? # #! # ! " 1 ! 5 5 # # # = 2 + E " 1
#! #
*! ! # #! " # /" %! ! ++ # # % #
*! ! / 5 # #! # # ++ # # ! / 1 "
+ # & '()
= 1 3 ! % # %! ! / # " 5 # #! # # !
! # / + :1 1 #! ! / # " 5 #
! 5 / #
+ , # " " - 2344
& , " .
& '() + % #! %! #! # # # ++ # # % " # # #! &
'() 5 )# + / # # ++ # 1# # #! + +
++ # # /" & '() # # 5 /" #! ++ # ! 2# # #! ++ #
# E # # 5 #! # ! 5 / + # :1 1 + #!
! 2 + 5 J 2 + K /1# ! % #! # # ++ # #
# + ? # & '() 7 = 1 9
! # + # # 2 + ! # 1 # % / 1 H7 #
I * % + " %! # ! ++ %! #! . ,, # %! # #
% 3 - # ## -
7# # & '() 2+ # 9
= ! E # #! & '() $ ) # 7# # #! # % #! #
) # !
/ , #
java org.openadaptor.adaptor.RunAdaptor example2.props A
0 7# # &/ #! # 1 H7 7 = 1 8 = 1 + I
java -jar lib/jbother/JBother-0.8.4b.jar
# # & '() #! # 1 / ) # !.props.
*! " 1 E " 1 ! 1 5 #! H + E / #!
# # #! ) # ! ) I
B # #! #! & '() % / H!##+ >> ! # 3 6 > (
# I # ! #! # # " % #! 1 ! & '() #! # #! " + + "
? # #! # ! " 1 ! 5 5 # # # = 2 + E #! #
" 1 #! # #! #
( ! / # /" # # # 5 # #
! ! / + #! :1 1 H/ 1 & '() % # / # 5 #
#! % # # # #! /1 H I = 1 6 + # 5 #
! % #! # #! % # /1# # / 5 ! # #!
:1 1
! ! / " 5 # E %! #! ++ # ! / / #
# # & '() H7 = 1 8I
' # # 8 9 - :
G / # ! #! 1 # #1 & '() N 1 #!1 !
1 " #% # /" + 5 1# # :1 1 # / #%
++ # ! #1 " # /1 " 1+ # " # ) 1 !
# " # E # # :1 #! # ++ # ! 1 / #! # !
" ++ # #! # # / / 1 !# 1 # H 2 + 1
# I ! #! %! " 1 % # # 1 & '() # # # ++ # / #%
# #
$ & $, / # # #
)# ! / 2+ ! % # 1 & '() # # ++ # # # # 5 ++ #
1 # ! 2 + % / #! #! % " 1 ! % ! % # #
# # 5 # # ++ # 7 = 1
5 ; # - # # 8
7# # & '() 2+ # 9
1 #! # " 1 ! 5 1 # 7 #
0 = ! E # #! & '() $ ) # 7# # #! # #! # # # & '()
5 # % #! # 6 !
java org.openadaptor.adaptor.RunAdaptor JabberSource1.props A
!& 6 # #
! # # # & '() 5 # #! # 1# # # 1 + #!
3 7# # &/ #! # 1 H7 7 = 1 8 = 1 + I
java -jar lib/jbother/JBother-0.8.4b.jar
7 # # H 1/ # #! # I #"+ #!
% % %8 7 = 1
B #! 1 #! 6 # N 1 ! 1 #! 1 + #!
5 " 1 # # 5 # 7 = 1
3 B # #! #! & '() % / H!##+ >> ! # 3 6 > (
# I # ! #! # # " % #! 1 ! & '()
8 ! #! % / # % #! #! ! # )# #! # "#! # #! # #!
% /
! 6 # #
% & %, 0 # # 1 1
#
( & '() # # / 1 % #! #% # #! # # 1/ # "
/ #% #! #% ++ # ! 1 " #! # #! # # 1 # + #! #
# # # #! # #E #! + 5 # # ! # 1 #
5 # #! # #! + 5 # # # #! ++ # # # ) & '() #
# 1 #! . B ; # @/D # # 2+ + 5 # # #
7# # & '() 2+ # 9
! ; # @/D # . B ! / #! @+ ( +# + D # / @+ ( +#
1 # #
!! < # # #
= ! E # #! & '() $ ) # 7# # #! # #! # # # & '()
5 # % #! # 6 !
java org.openadaptor.adaptor.RunAdaptor JabberSource2.props A
! # # # & '() 5 # #! # 1# # # 1 + #! 2 # # 2#
' ! 5 # ++ # #! # 2# # ! +1 # %! #! +#
# #
0 = #! ! E # #! & '() $ ) # 7# # #! # #! # %
5 # / #! # # #! ) # ! ) @ 5 # ! #!
# # 2# ! #! # 3 6 =+
java org.openadaptor.adaptor.RunAdaptor JabberMessageSink5.props A
N 1 #! ! 5 # #! # # ! #! # # # #! + )
!(
" 1 1 #! 3 6 =+ # E # ! 1 ++ % #! # #
#
@+ #! # & '() % / H!##+ >> ! # 3 6 > (
# I N 1 2 ! #! & '() /1 *! " 1 5 E
" 1 > ! 5 !# #! ; # @/D # + 5 # # #! # ! / #
#! 1 ! & '() H7 = 1 I
)# #!1 + / # # # 5 ++ # E #! # 5 # +1# E
% #! 1# % # " +
)# + / # 1 2 # # #! # 1 # # "
+ " #! # 1 #1 #! # # ! # # + % #
!* ? , 230 # #
++ / #% #! 1 # # 1 #1 #! # # # # 1 #1 ! + % /
/ # 5 #! 1 # ! J > K 2+ ! % #
5 + " 1 % #
' & ', 2 - , #
& '() / 1 # # 5 # /" 1 #! /1 # +1/ ! 1/ /
! H7 = 1 I ! 5 " 2 / ! #! # / # # " #
++ # 1 #
7# # & '() 2+ # 9
B #! & '() !##+ >> ! # 3 6 > % #! # H+ % # I
0 C # % +1/> 1/ #! & '() $ # #! ,1/>71/ #
H!##+ >> ! # 3 6 > 4 ,1/>71/I + " #! /1## E % #! 1# +1# #! % /
H7 = 1 3I
! % # # # E # #!
home/localhost/admin/2999265953 ! #! #! ,1/>71/ " 1 D1 #
!+ 4 @ #
# N 1 ! 1 # #! ,1/>71/ H = 1 9I
N 1 # # 1 H#! " 5 " 1 ! 5 # I
7 + " #"+ #! + # + #! # #! " 1 % # # # = 2 + E " 1 #
# home/localhost/admin H # # 2 # ! 5 #! !# # I !
home/localhost/admin/testnode 4 #! # % #! #! + #
! # #! /1## H7 = 1 6I ! ! 1++ # /
home/servername/username/nodename
!% 4 9 :
C # 1/ +# 5 ++ # #! % ! #! & '()
#! #E D1 # #! " 1 ! 5 D1 # # #! ,1/>71/ # H
2 + home/localhost/admin/testnodeI 7 #! # = 1
8
!/ < 6 home/localhost/admin/2999265953
!' 4 # # $ $ # $
= #! " 1 / # 1/ /# 71/ / #! % 1 # #!
E ! E = # E #! # ! 1
/ +# # ownerE /1# #! 1/ +# ! 1 / 1 ! +# # none H # 1 #
1/ / # #! I = E ! #! #
! 1 / none = #! #! 1/ / E #! 1/ +# # #1 #!1 # # subscribed
H7 = 1 0 I
!5 # #
= " # ! E # # #! + 1 + . ,, # # %! # 5 !
5 % / 1 + #!
java org.p1.JEAITest -user user -password user
! . ,, # # > ! = 1 0 ! % #! + % # #
#! & '() /1
) " 1 # # E " 1 !# # 5 #! +1/ 1/ #! # # !# / 5 /" #!
# #! # # # # #! H*! ! # 5 #! #1 " + #! #
+ #" ) #! + # #! E #! # # # % 5 #! ) 1 E #! % # /
#! &'() # #E /1# #! #! # # + " # #! +1/ 1/
(& ; # #
3 C # % #! & '() +! 5 % ! +# % 5 + " #!
# # #! +1/ 1/ B 1 ! #! JabberSourceGUI.props +#
java org.openadaptor.adaptor.RunAdaptor JabberSourceGUI.props A
! +! 4 ) # % / 1 ! %! # 5 G "
5 #! & 5 H7 = 1 0 I
( ; # " # #
( % % % % / 1 ! ! % N 1 + # #! N 1 #
#! % % / ## #! 2#
9 B 1 ! #! +1/> 1/ +# % #! #!
java org.openadaptor.adaptor.RunAdaptor JabberPubsubSink2.props A
! % #! # # #! example6.txt . B + # # #! & '() /1
' ! % / + # # #! +1/ 1/ !
home/localhost/admin/testnode ( 1/ / # % 5 #! E 5
#! "
6 B # 1 # " 1 #% # # = 1 00 ! % #! 1 + #! % . B
5 /" #! &'() # + ! # " + + #! # % # # 1 #
! % #! %
(! 6 A "
= 1 0 ! % 5 #! 1 ! #! & '() +1/ 1/ ! H? I /" #! #
@ % % # /" 5 N 1 # % % # 5 #! 2#
(( ; # " #
) #! E #! & '() + # # 1 #1 / % " ) # /
+ " % %E #! 1 ! 5 / # # /
8 = #! & '() % / H # IE # #! # !##+ >> ! # 3 6 > (
# N 1 # %! ! ++ 5 +1/> 1/ + # ! @ = 1
0 E % " #! # ! / # # #! ++ # % #! " 5
#! E /1# #! # #! :1 1 ! ! # / # 5 " #
) " 1 # ! # & '()E %! # 5 #! # " 1 1 E " 1 % # 5 #! +1/ 1/
" 1 :1 1
(* B - " #
) & ), "
# #! # E ++ # # # # % # ! / 5 /"
++ # %! #! ++ # ! # 5 + #! ! " # #
# & '()
! ( > 4 % " # # 5 5 % #! " # # 5 #" N 1 :1 "
%! ! ++ # # # %! #! ++ # % # N 1 # /
#! 1 / % # #! :1 1
3 & 3, * ## # #
C 1 # / #% ++ # # 5 )# + / # # & '() # #
# # / ! 2 + % / 5 + # 5 #! 1 #
& '() 1 &;GC 5 # #! # /
(+ # 94 :
%
2
! +1/ ! < 1/ / 0 ! % # 1/ / # ! # # #
+1/ ! #! ! ! #! % " 1 # /1 " 1+ # " # E
+1/ ! # # % 5 %! % / #! + # #! +1/ !
! + # # + #! 1 # #! '() + # E #! 1 ! #! #
1/ +# # 5 " ! ! # / # " /1# # # 5 " /
+ # # 1/ +# E %! + # 5 % #
&', 3 1 #! # + #! % ! %! ! #! # # # 1
'() 1 # * % # % #! #! # # + " % #! #! % 1 &',
3 A % 5 E " 1 # # #! # ! ! 1 /
:1 5 #
& '() +1/ ! < 1/ / ! & '() + # % #! &', 3 H& // ' ! #
, + I # 5 # +1/ ! < 1/ / = # # #! + # E
+ # &', 3 !##+ >>D + D // >
# &
4
4 !"
! + 1 2+ ! % # # +1/> 1/ " . ,, # ++ # R // %
/ 1 1 # # #
@+ R // . B
@+ % . B
0 C # # # /" 1/ ## #! % . B # #! 5 ? # #! # #! 1
/ ! 5 /" # #! + + # + # #! . ,, # . B % H)M ,1/> 1/
C # I
<iq to='pubsub.localhost'
type='set'
id='create1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<create/>
0 +1/> 1/ ! #
( # # +1/> 1/ %! ! #! # # % # # ! ? ) ! 5 % /
1# # " # #! ? ) / ! #! #
</pubsub>
</iq>
) #! ,1/> 1/ ! # " # E #! 5 % % % #! #! % . B # F
<iq from='pubsub.localhost'
to='admin@localhost/tkabber'
id='create1'
type='result'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<create node='home/localhost/admin/272954279'/>
</pubsub>
</iq>
! # O! > ! #> > 9 8 98O + # #! 1# # " # #
#! +1/> 1/
= %E ! # # +1/ ! # #! E % / # # # #! #
1/ / # #! / #! # +1/ #
'
( # 1/ / # ! # # # # +1/ # # #! 5
! ) . ,,>& // # E " 1 1/ / # 5
4
4 !"
! # #! % . B # F # #! 5
<iq to='pubsub.localhost'
type='set'
id='subscribe1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<subscribe node='home/localhost/admin/272954279'
jid='admin@localhost'/>
</pubsub>
</iq>
! ? ) O! > ! #> > 9 8 98O #! # + 5 1 " # +1/> 1/
) #! 1/ +# 1 1 #! 5 % % % #! #! % . B # F
<iq from='pubsub.localhost'
to='admin@localhost/tkabber'
id='subscribe1'
type='result'/>
' (
,1/ ! # +1/ ! < 1/ / :1 5 # # !
'() # "
4
4 !"
N 1 +1/ ! # #! # # #! " + " " 1 % # % #! 2 + #! % . B
# F <iq to='pubsub.localhost'
type='set'
id='publish1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='home/localhost/admin/272954279'>
<item>
<news xmlns="http://www.erlang-projects.org/">
<title>News Title</title>
<body>News Body</body>
</news>
</item>
</publish>
</pubsub>
</iq>
! # # #! # # 5 # / #% 5 5 ++ # # #! # E #!
# # #! # # % / + 5 # . B #E #! # 5 # # # 5 ++ #
# /" & '() # E "
) #! +1/ # 1 1 E #! 5 % %
<iq from='pubsub.localhost'
to='admin@localhost/tkabber'
id='publish1'
type='result'/>
! 1/ / # % 5 #! % . B
<message from='pubsub.localhost'
to='admin@localhost'>
<x xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='home/localhost/admin/272954279'>
<item>
<news xmlns='http://www.erlang-projects.org/'>
<title>News Title</title>
<body>News Body</body>
</news>
</item>
</items>
</x>
</message>
$
$ 4
$ 4 !"
) * + %
% 4
% 4 !"
* 5 # #
) #! # E % % 2+ ! % # # ++ # #! 1 ! #! & '() + # *
% 1 . ,, # # 5 #! E /1# " . ,, + # ++ # 1 #!
D /
$ ,
$ * !" #
$ # #
$ , % - '
$ , - , !"## % -
.
B 1 ! D 5 % #! #! -Dsmack.debugEnabled=true +# = 2 +
java -Dsmack.debugEnabled=true
org.openadaptor.adaptor.im.JabberTest
( & 5 % % + #! # ! % #! . B # / #% #! . ,, # #! 5 7 = 1
03
(% 6# = 7 " " 2344
) /
% 6
" #! + + # % / ! & '() #1 " # + D #
(# #! / " E # ++ #! # #! @+ 7 1 '()E % #
'7G H' # + 7 5 G1 I ! # @+ 7 1 % +
# + # " # E + " % #! & '' ++ # 5 & '' ++ # 5
+ + / + # +# #! + 1 % % #! 1 !# #! # #! #
! # +1 ! + @+ 7 1 1# ! ! % & '() /
! 1# % + 1 " 1 # !# 1# #! / 2E %! ! #! #! # &
'() # # + 1 + # # & '() % !# % " 1 # " # # "
C; @
& '() 1 :1 #! # 1 / + 5 #1 * # # #
#! @+ 7 1 '() / E 1 # # # / #! #E % 1 #! + 5
' >@ , H@+ # , # I # ! " %! ! ! / ++ ! # 5 +
/ 1 # # # " #
% 7
! 5 & '() + # 1 #! $ ,1/ B 5
= 1 # /1# + # #! # + # & '()E % 1 #!
@+ +# # /1# @+ ( +#
7 H& 5 . ,, / I @;@ *! # -
'D // # /1# $,B H5 I
& '() $,B H5 I
% 8 # #
) /
% 0 9
+ + S
+ # D 5 1# ; # S
+ # D 5 #% + # S
+ # D 5 #% . ,,C # S
+ # D 5 #% . ,,'2 +# S
+ # D 5 #% , #C # S
+ # D 5 #% # TS
>TT
T ;1 + . ,, # " # 1#
T
T 1#!
T>
+1/ &'();1 + U
+ 5 # . ,,C # Q # S
+ 5 # , #= # = # S
+ 5 # , #C # C # S
>TT
T C # 1 # &'();1 +
T>
+1/ &'();1 +HI U
V
>TT
T #1 #! 2# 5 / #! ! # ! #! % /
T H # #1 I 1 # 5 /
T
T #1 #! 2#
T>
+1/ 2# HI U
#1 H I C # 2# 1 #HIS
V
>> #
+ 5 # 5 #C # HI U
>> C # # # #! & '() 5
HQ # WW 1 XX YQ # C # HII
U
# " U
Q # W % . ,,C # HP 9 PIS
7" # 1# + # HPC # # ! #PIS
V
# ! H. ,,'2 +# I U
7" # 1# + # HP= # # # #! 5 P L # HIIS
V
V
HYQ # (1#! # # HII
U
# "
U
Q # HP PE P PIS
7" # 1# + # HP(1#! # # 1 PIS
V
# ! H. ,,'2 +# I
U
7" # 1# + # HP= # # 5 P L # HIIS
V
V
V
>> ' # " + #
+1/ 5 1 HI U
#C # HIS
= # W % , # "+ = # H IS
C # W Q # # , #C # H = # IS
%! H# 1 I U
>> * # #! 2# " 1 1
W 2# HIS
>> , # #! #!
7" # 1# + # H # . BHIIS
V
V
V
% ( 9
+ + S
>> 4 #! &'();1 +
&'() # U
+1/ # # 5 H7# Z[IU
&'();1 + D S
D W % &'();1 +HIS
D 1 HIS
V
V
) /
% &
# J-EAI Example:
# This example send an XML file to a Jabber user
# Start this connector with: java
org.openadaptor.adaptor.RunAdaptor example2.props A
#
# Components:
#
A.Component1.Name = C1
A.Component2.Name = C2
#
# Component Linking:
#
A.C1.LinkTo1 = C2
#
# C1: FileSource - reads in sample three fields delimited file
#
A.C1.ClassName =
org.openadaptor.adaptor.standard.FileSource
A.C1.DOStringReader =
org.openadaptor.dostrings.DelimitedStringReader
A.C1.InputFileName = example2.txt
# We expect three fields:
A.C1.NumAttributes = 3
# ASCII value of the comma field delimiter
A.C1.FieldDelimiter = 44
#
# C2: JabberMessageSink - sends an XMPP message
#
A.C2.ClassName =
org.openadaptor.adaptor.im.JabberMessageSink
A.C2.DOStringWriter =
org.openadaptor.dostrings.XMLStringWriter
A.C2.WriteEmptyAttributes = true
A.C2.WriteEmptyObjects = false
A.C2.WriteEmptyAsSingletons = true
A.C2.DocumentTagName = message
A.C2.ElideSingletonRootObjectTag = yes
# The username and password must already exist in the J-EAI
server. No automatic registration is performed
A.C2.To = user@localhost
A.C2.Username = admin
A.C2.Password = nimda
A.C2.Host = 127.0.0.1
A.C2.MessageType = normal
A.C2.Subject = Example 2
% & &
2004-03-01,10:32:12,Mickaël Rémond
2004-07-09,11:02:15,Thierry Mallard
2004-08-12,18:12:59,Alexey Shchepin
) /
! # 2# 1 #! 2 + #! #! 1 2 +
) $ / $
% $ -
# J-EAI Example:
# This example use data coming from an XMPP server as a "source"
# component for an adaptor
# Normally use a FileSink to store the result on disk
# As no file name is specified, the result are dump on the
console.
# Start this connector with: java
org.openadaptor.adaptor.RunAdaptor JabberSource1.props A
#
# Logging:
#
A.Logging.LogSetting1 = INFO
A.Logging.LoggingTimeInfo = false
A.Logging.LoggingThreadInfo = false
A.Logging.LoggingPackageInfo = false
#
# Components:
#
A.Controller.Name =
Controller
A.Component1.Name = C1
A.Component2.Name = C2
#
# Component Linking:
#
A.C1.LinkTo1 = C2
#
# C1: FileSource - reads in sample trade details
#
A.C1.ClassName =
org.openadaptor.adaptor.im.JabberSource
A.C1.Host = localhost
A.C1.Username = admin
A.C1.Password = nimda
#
# This defines that C1 should use a Delimited String Reader to
parse
# the file into DataObjects
#
A.C1.DOStringReader =
org.openadaptor.dostrings.DelimitedStringReader
#
# This defines that Delimited String Reader should expect comma
seperated
# fields, and to automatically create DataObjects with six
attributes, it
# will therefore expect to read six fields from the file.
#
A.C1.NumAttributes = 1
A.C1.FieldDelimiter = 44
#
# C2: FileSink
#
A.C2.ClassName = org.openadaptor.adaptor.standard.FileSink
A.C2.DOStringWriter =
org.openadaptor.dostrings.DelimitedStringWriter
A.C2.NumAttributes = 1
A.C2.FieldDelimiter = 32
) ) / )
% % -
# J-EAI Example:
# This example use data coming from an XMPP server as a "source"
# component for an adaptor
# Use a FileSink to store the result on disk
# Start this connector with: java
org.openadaptor.adaptor.RunAdaptor JabberSource2.props A
# Can work with JabberMessageSink5.props
#
# Logging:
#
A.Logging.LogSetting1 = INFO
A.Logging.LoggingTimeInfo = false
A.Logging.LoggingThreadInfo = false
A.Logging.LoggingPackageInfo = false
#
# Components:
#
A.Controller.Name =
Controller
A.Component1.Name = C1
A.Component2.Name = C2
#
# Component Linking:
#
A.C1.LinkTo1 = C2
#
# C1: FileSource - reads in sample trade details
#
A.C1.ClassName =
org.openadaptor.adaptor.im.JabberSource
A.C1.Host = 127.0.0.1
A.C1.Username = app1
A.C1.Password = app1
#
# C2: FileSink
#
A.C2.ClassName = org.openadaptor.adaptor.standard.FileSink
A.C2.DOStringWriter =
org.openadaptor.dostrings.FixedWidthStringWriter
A.C2.OutputFileName = tmpfile.out
A.C2.AttName1 = Date
A.C2.AttName2 = Hour
A.C2.AttName3 = Name
A.C2.FieldWidth1 = 10
A.C2.FieldWidth2 = 10
A.C2.FieldWidth3 = 30
% % " - +%
# J-EAI Example:
# This example send a message for each record in the flat text
file.
# The record is send an Adaptor DataObject
# Start this connector with: java
org.openadaptor.adaptor.RunAdaptor JabberMessageSink5.props A
A.Logging.LogSetting1 = INFO
#
# Components:
#
A.Component1.Name = C1
A.Component2.Name = C2
#
# Component Linking:
#
A.C1.LinkTo1 = C2
#
# C1: Benchmark source - Generate continuous dataset
#
A.C1.ClassName = org.openadaptor.adaptor.standard.FileSource
#
# This defines that C1 should use a Delimited String Reader to
parse
# the file into DataObjects
#
A.C1.DOStringReader =
org.openadaptor.dostrings.DelimitedStringReader
#
# This defines that C1 should open and read in.txt.
#
A.C1.InputFileName = example2.txt
#
# This defines that Delimited String Reader should expect comma
sperated
# fields, and to automatically create DataObjects with six
attributes, it
# will therefore expect to read six fields from the file.
#
A.C1.NumAttributes = 3
A.C1.FieldDelimiter = 44
A.C1.Type1 = JEAI
A.C1.JEAI.AttName1 = Date
A.C1.JEAI.AttName2 = Hour
A.C1.JEAI.AttName3 = Name
#
# C2: JabberSink -
#
A.C2.ClassName =
org.openadaptor.adaptor.im.JabberMessageSink
# The username and password must already exist in the Jabber
server. No automatic registration is performed
A.C2.To = app1@localhost
A.C2.Username = app2
A.C2.Password = app2
A.C2.Host = 127.0.0.1
A.C2.MessageType = chat
A.C2.Subject = Test
) 0 / 0
% ' - +
# J-EAI Example:
# This example send an XML file to a pubsub node
# Start this connector with: java
org.openadaptor.adaptor.RunAdaptor JabberPubsubSink2.props A
A.Logging.LogSetting1 = INFO
#
# Components:
#
A.Component1.Name = C1
A.Component2.Name = C2
#
# Component Linking:
#
A.C1.LinkTo1 = C2
#
# C1: FileSource
#
A.C1.ClassName = org.openadaptor.adaptor.standard.FileSource
#
# This defines that C1 should use a Delimited String Reader to
parse
# the file into DataObjects
#
A.C1.DOStringReader =
org.openadaptor.dostrings.DelimitedStringReader
#
# This defines that C1 should open and read in.txt.
#
A.C1.InputFileName = example6.txt
#
# This defines that Delimited String Reader should expect comma
sperated
# fields, and to automatically create DataObjects with six
attributes, it
# will therefore expect to read six fields from the file.
#
A.C1.NumAttributes = 3
A.C1.FieldDelimiter = 44
A.C1.Type1 = JEAI
A.C1.JEAI.AttName1 = Date
A.C1.JEAI.AttName2 = Hour
A.C1.JEAI.AttName3 = Name
#
# C2: JabberSink - sends mail containing the DOXML as the body of
the message
#
A.C2.ClassName =
org.openadaptor.adaptor.im.JabberPubsubSink
# The username and password must already exist in the Jabber
server. No automatic registration is performed.
# The pubsub node must also exist and have been created in Jabber
A.C2.Node = home/localhost/admin/testnode
A.C2.Username = admin
A.C2.Password = nimda
A.C2.Host = 127.0.0.1
A.C2.Service = pubsub.localhost
A.C2.DOStringWriter =
org.openadaptor.dostrings.XMLStringWriter
A.C2.WriteEmptyAttributes = true
A.C2.WriteEmptyObjects = false
A.C2.WriteEmptyAsSingletons = true
A.C2.DocumentTagName = message
A.C2.ElideSingletonRootObjectTag = yes
A.C2.WriteAsXMLFragments = true
% ' - /*
# J-EAI Example:
# This example use data coming from an XMPP server as a "source"
# component for an adaptor
# It display the incoming message on graphical interface.
# Start this connector with: java
org.openadaptor.adaptor.RunAdaptor JabberSourceGUI.props A
#
# Logging:
#
A.Logging.LogSetting1 = INFO
A.Logging.LoggingTimeInfo = false
A.Logging.LoggingThreadInfo = false
A.Logging.LoggingPackageInfo = false
#
# Components:
#
A.Controller.Name =
Controller
A.Component1.Name = C1
A.Component2.Name = C2
#
# Component Linking:
#
A.C1.LinkTo1 = C2
#
# C1: JabberSource
#
A.C1.ClassName =
org.openadaptor.adaptor.im.JabberSource
A.C1.Host = 127.0.0.1
A.C1.Username = app1
A.C1.Password = app1
A.C1.DOStringReader = org.openadaptor.dostrings.XMLStreamReader
#
# C2: ViewerSink
#
A.C2.ClassName = org.openadaptor.adaptor.viewer.ViewerSink