SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Testing Fuse Fabric
with
Pax Exam
Brought to you by Henryk Konsek / @hekonsek
This talk
1. Our goals
2. Pax Exam
3. Case studies
1. Our goals
Our problems

OSGi ;)
it works on my computer aka responsibility ping-pong
creating repeatable middleware proof of concepts is difficult
going production without proper testing
Our goals
repeatable tests of middleware - infracoding
OSGi issues detected and fixed as soon as possible
educated customers sending us runnable and repeatable
examples
2. Pax Exam
What is Pax Exam

JUnit friendly framework for running tests in real Karaf
containers
Exam deploys JUnit test case as a bundle
if the bundle can be successfully tested with the Exam, then
it can be successfully deployed to Karaf
Exam hello world!
Project structure

m-r jc
ypo e t
m -r jc -e v cs
y p oe ts ri e
m -r jc -o t s
y p oe tr ue
..
.
m -r jc -u d e
y p oe tb nl
m -r jc -t s
y p oe ti et
Exam hello world!
JUnit class

@ uW t( aE a.l s)
R ni h Px xmca s
p bi c as MK rf et e tn sA sr {
u lc l s ya a Ts x ed se t
@n et
Ij c
MO gS ri em O gS ri e
ys i ev c ys ie v c;
@o fg rt o
Cn i ua in
pb i Ot o[ c ni ua in ) {
ul c pi n] o fg r to (
..
.
}
@ et
Ts
p bi v i s o lR tr Rs o s( {
u l c o d hu de u ne pn e)
..
.
}
}
Exam hello world!
Karaf configuration

@ of gr to
C ni u ai n
p bi O to [ c n iu ai n) {
u lc p in ] of gr t o(
rt r nw Ot o[ {
eu n e pi n ]
k rf it iu i no fg rt o (
a a Ds rb to Cn i ua in )
.r mw rU l
f ae ok r (
m vn )g o pd"r .p c ek rf )a tf c I( aa h- aa "
ae (. ru I(o ga ah .a a" . ri at d" p ce kr f)
.y e " i ". es o ( 2 33 ).
t p( zp)v r in". ." )
kr fe s o( 23 3)n m( Aa h Kr f)
a aV ri n" . .".a e " pc e aa "
. na ki e tr(e F l( tr e/ a ")
up cD rc oyn w i e "a gt px )
. sD po F le(a s) k eR ni e od r)
ue el yo drf le , ep ut mF le ( ,
c ni ue os l ( . go eo a Cn oe )i nr R mt Se l )
o f gr Cn oe )i n rL cl os l(. go ee oe h l( ,
m vn ud e) g op d " o. x ml ". ri at d"y po et bn l ".
a e Bn l( .r uI ( cm ea pe )a t fc I(m- r jc -u de )
vr in sn r jc (}
e so AI Po et );
}
Exam hello world!
Testing OSGi service

@ uW t( aE a.l s)
R ni h Px xmca s
p bi c as MK rf et e tn sA sr {
u lc l s ya a Ts x ed se t
@ ne t
Ijc
M Og Sr ie m Og Sr ie
y s ie vc y si e vc ;
@ of gr to
C n iu ai n
p bi O to [ cn iu ai n ){
u l c p in ] of g rt o(
..
.
}
@ et
Ts
p bi v i s o lR tr Rs o s( {
u l c o d hu de u ne pn e)
as rE ul ( Hl o" m Og Sr ie h lo ol ()
s et qa s" el !, y s ie vc .e lW r d) ;
}
}
Exam hello world!
Testing OSGi Camel service

@ uW t( aE a.l s)
R ni h Px xmca s
p bi c as MD po eC m le t e tn sA s r {
u lc l s ye l yd ae Ts xe d se t
@n et
Ij c
Cm lo tx c ml ot x ;
ae C ne t a e Cn et
@o fg rt o
Cn i ua in
pb i Ot o[ c ni ua in ) {. }
ul c pi n] o fg r to ( ..
@e t
Ts
pb i vi so l Rt rR so s ( {
ul c od h ud eu n ep ne )
S rn r so s =c ml ot x .r ae rd cr e pa e)
t i g e pn e
a e Cn et ce tP o ue Tm lt ( .
rq et oy " m: uu " "s " Sr n.ls )
e us Bd (j sq e e, m g, ti gca s;
a sr Eu l(H lo " rs os )
s e tq as "e l ! , ep n e ;
}
}
3. Case studies
Case #1: Hello world!
Arm your POM

< eo io is
r ps t re >
<e oi oy
rp s tr >
< dj os fs - a/ d
i > bs -u ee <i >
< r>tp :/ e oi oy jo s og nx sc ne t go p/ a/ r>
u lht s/ rp st r .b s. r/ eu / ot n/ ru s e< ul
<r ps tr >
/e o io y
< rp st re >
/ eo i oi s

Engineering guys deploy here.
< rp ri s
p oe t e>
<a rc vr in 1 00 rd a- 4<f bi -e so >
fb i -e so >. .. e ht 30/a rc v ri n
< po et e>
/ rp r is

Pick up some bleeding edge yet stable version of Fabric test
API.
Case #1: Hello world!
Arm your POM

< ee dn y
d pn e c>
<r ui > o fb i 8/ ru i>
go p di .a rc <g o pd
<r ia td fb i 8k rf /r i at d
at f ci >a rc -a a <a tf ci >
<e so >{ ar c vr in <v r in
vr i n $ fb i- es o }/ es o>
<y e z p/ ye
tp > i< tp >
< dp ne c>
/ ee d ny

Download Fabric distribution.
< ee dn y
d pn e c>
<r ui >o fb i 8i et <g o pd
go p d i .a rc .t s s/ ru i>
<r ia td fb i -t ss cm o <a tf ci >
at f ci >a rc ie t -o mn /r ia t d
<e so >{ ar c vr in <v r in
vr i n $ fb i- es o }/ es o>
< dp ne c>
/ ee d ny

Include Fabric test API (and nothing more!).
Case #1: Hello world!
Tested Camel route

p bi c as Nt yt po t et n sR ue ul e {
u lc l s et H tR ue x ed o tB i dr
@ vr ie
O e rd
p bi v i c n iu e) tr w Ec pi n {
u l c o d of gr ( h os x et o
fo (n ty h t: tp /l c lo t1 00 ".
r m" et -t ph t :/ oa hs :8 8 /)
s to y) c nt n(Hl o wr d" ;
eB d( .o sa t"e l ol ! )
}
}
Case #1: Hello world!
Base test class

i pr i .a rc .t ss p xx ms po tF b iT sS po t
m ot o fb i8 i et .a ea . up r. ar ce t up r;
..
.
@ uW t( Ui 4e t un rc as
R ni h Jn tT sR ne . ls)
@ xm ec oS rt g(l Cn ie S ae Ra tr at r .l s)
E aR a tr ta ey Al o fn dt gd ec o Fc oy ca s
p bi c as Sm lF bi T s e t nsFb iT sS p ot {
u lc l s ip e ar ce t xe d ar c et up r
@o fg rt o
Cn i ua in
pb i Ot o[ c ni ( {
ul c pi n] o fg )
r tr n wO to [{
e u n e p i n]
nw Df ut o ps tO to ( ar ci ti ui n of gr to ()
e e al Cm oi e pi nf bi Ds r bt oC ni u ai n) ,
m vn ud e "o mn -o ,"o mn -o )v r in sn rj c(
ae Bn l( cm o si " cm os i ". es oA I Po et )
}
;
}
..
.
}

almost no config? Buy Ioannis a beer for creating the
FabricTestSupport ;)
yeah, this is the old and ugly Pax Exam 2.x API...
you need to configure everything you use in the test bundle
Case #1: Hello world!
Deploying Camel route

i pr s ai jv . ag Ss e. r;
m ot t tc a al n. y tm er
@ et
Ts
p bi v i s ol C et Cm lo t r) tr w Ec pi n{
u lc o d hu dr ae a eR ue ( ho s xe t o
er pi tnee u eo mn (f b i: ra e- ")
r. r nl(x ct Cm a d" ar cc et n);
er pi tn ee u eo mn ( f b i: rf l- ra e "+
r. r nl(x ct Cm a d" ar cp oi e ce t
" -a et f au ec m ln ty ht -e v r);
- p rn s e t r- ae e t -t ps re ")
er pi tnee u eo mn (f b i: rf l- dt " +
r. r nl(x ct Cm a d" ar cp oi e ei
" -e tr sc m ln ty ht n ty ht - ev r);
- f au e ae -e t -t p et -t ps re " )
er pi tnee u eo mn (f b i: rf l- dt - bn ls "+
r. r nl(x ct Cm a d" ar cp oi e ei - ud e
" v: o. xm l /y po et b nl /. -N PH T nt yh t- ev r);
m n cm ea pe m- r jc -u de 10 S AS O et - tp sr e")
Cn an ru le . ra e)
ot i eB id rc et ( .
w tN m( ru e -o ti e" . ih rf ls "e t -t ps re ".
i h ae "o tr cn a nr )w tP oi e (n ty ht - ev r)
a sr Po ii n nR sl ( . u l( ;
s e tr vs oi ge u t) bi d)
/ . . as ri n
/ . se to s
}

String output = executeCommand("some:karafCommand");
assertProvisioningResult == block until container is ready
Case #1: Hello world!
Testing deployed route

@ et
Ts
p bi v i s ol C et Cm lo t r) tr w Ec pi n{
u lc o d hu dr ae a eR ue ( ho s xe t o
/ . . ce tn c na nr
/ . ra ig o ti e
Ip tt em ip t te m=
nu S ra n uS ra
n wU L" tp / lc lo t1 0 0" .p nt em )
e R( ht :/ oa h s: 88 /) oe S ra (;
Sr n rs os = IU is tS r n( nu Sr a)
ti g ep ne
Ot l .o ti gi pt t em ;
as rE ul (H l ow rd " rs os )
se t qa s" el o l !, e pn e;
}

a poor-man's HTTP client
Case #1: Hello world!
User friendly output

f bi :r ae a rc c et n
U ig se ii dz o ep rp sw r :d i
s n p cf e ok ee as od am n
f bi :r fl -r a e- pr ns f au ec ml nt y ht -e vr
a rc p oi ec et - a et e tr -a e e t- tp s re
f bi :r fl -d t -f au e cm ln ty h t n t yh t- ev r
a rc p oi ee i -e t rs a e- et -t p et -t p sr e
A dn f au ec ml nt y ht t po ie n ty ht -e v rv ri n1 0
d ig e tr :a e -e t- tp o r fl :e t- t ps re e so : .
f bi :r fl -d t -b nl s. . nt yh t- ev r
a rc p oi ee i -u d e . et -t p sr e
A dn b nl :v :. t p oi en ty ht - ev rv ri n 10
d ig u de mn . . o r fl : et -t ps re es o: .
W ii gf rc na n r: [r ue - ot ie 1] t sc es u l p oi i n
a tn o ot ie s
ot rc na nr
o u cs fl y rv so
C na nr ru e- o ti e1 Ai e fl eS au :S H UL nl
o ti e :o tr cn an r l v: as t t s S R: u l
C na nr ru e- o ti e1 Ai e tu Sa u :n lz n SH UL ..
o ti e :o tr cn an r l v: re t ts aa y ig S R :.
C na nr ru e- o ti e1 Ai e tu Sa u :o no dn S HU L. .
o ti e :o tr cn an r l v: re t ts dw l ai g S R: .
C na nr ru e- o ti e1 Ai e tu Sa u :i ai ig S HU L. .
o ti e :o tr cn an r l v: re t ts fn l zn S R :.
C na nr ru e- o ti e1 Ai e tu Sa u :u cs S HU L. .
o ti e :o tr cn an r l v: re t ts sc e s S R: .

output partially omitted (SSH address!)
very similar to the output from the real Karaf session
Case #2: Hacking child
containers with SSH
C na nr cn an r =( ot ie ) ce t( .i ha e "o tr cn an r )
o ti e o ti e
C n an r ra e) w tN m(ru e -o ti e" .
wt Po ie (n t yh t- ev r)
ih r fl s" et -t p sr e".
as rP oi in n Rs l( .u l (. tr tr)n x(;
se t rv so ig eu t )b id ) i ea o ( . et )
S rn [ cn an rs Ul = cn an rg ts U l) sl t" ";
t ig ] ot ie S hr
ot i e. eS hr ( . p i( :)
S rn c na nr ot =c n an rs Ul 0;
t ig o ti eH s
ot ie S hr []
S rn c na nr ot =c n an rs Ul 1;
t ig o ti eP r
ot ie S hr []
S rn b nl sn ot ie = ee u eo mn (o mt
t ig u de OC n an r
x ct Cm ad f ra (
"s - % - % - % % og : it ,
sh l s P s p s s s il s"
"d i" " di " cn an ro t cn an r ot
am n , a mn , ot i eP r, o ti eH s
);
)
a sr Tu (u de O Cn an rc n an(c ml nt y ht ")
s et r eb nl sn ot i e. ot is "a e -e t- tp );

running Karaf container can be accessed via SSH client
we can execute any remote Karaf command via ssh
Case #3: Fabric Master
component test

many customers request singleton Camel route in the
clustered environment
Fabric Master FTW!
it is difficult to provide proof of concept for the customer
Pax Exam + Fabric Master = no brainer demo
Case #3: Fabric Master
component test
p bi c as Ms eR ue e tn sR ue ul e {
u lc l s at r ot x ed ot Bi dr
@v ri e
Oe r d
pb i vi cn i ue ) t rw E cp in {
ul c od o fg r( ho s xe to
f o(ms e: e t- at rn t yh t: tp /l c lo t1 01 " .
r m"a tr nt ym s e: et -t ph t :/ oa hs : 88 / )
st oy )c n tn (m se " ;
e Bd (. os at " at r)
}
}

the clustered route we want to test
only single Netty instance should handle requests at given
moment
Case #3: Fabric Master
component test
f bi :r ae a rc c et n
f bi :r fl -r a e- pr nsf au ec ml ms e -e t
a rc p oi ec et - a et e tr -a e a tr nt y
f bi :r fl -d t -f au e cm ln ty h t m s e- et
a rc p oi ee i -e t rs a e- et -t p at rn t y
f bi :r fl -d t
a rc p oi ee i
-b nl sm nc m ea pe m- r jc-u de 10 S AS O ms e- et
-u d e v: o. xm l /y po etbn l /. -N PH T at rn t y

Booooring...
Case #3: Fabric Master
component test
C na nr ms e =C na n ru le .r ae )
o ti e a tr
ot ie Bi d rc et (.
wt Nm (m se ".i hr fl s "a tr nt y )
ih a e" at r)wt P oi e (ms e- e t" .
as rP oi in n Rs l( .u l (;
se t rv so ig eu t )b id )
I pt te mi pt t em =
n uS r a nu Sr a
nw UL "t p/ l cl ot 10 1 ". pn te m)
e R (h t: /o ah s :8 8/ )o eS r a( ;
S rn r so s = I Ui st Sr n(n uS ra )
t ig e pn e
O tl . ot igip tt e m ;
a sr Eu l( ms e " r s os )
s et q as "a tr , ep ne ;

creating first Netty router container in the cluster
first router must be the master
Case #3: Fabric Master
component test
C na nr sa e= C na nr ul e.r ae )
o ti e l v
o ti e Bi drce t ( .
w tN m( sa e )w tP oi e (m se -e t" .
i h ae "l v" .i h rf ls "a tr n ty )
a sr Po ii n nR sl ( . u l( ;
s e tr vs oi ge u t) bi d)

no port conflicts? That's good - only the single master node is
running.
Case #3: Fabric Master
component test
C na nr ms e =. .
o ti e a tr
.;
..
.
m se .e to (;
a tr d sr y)
I pt te mi pt t em =
n uS r a nu Sr a
nw UL "t p/ l cl ot 10 1 ". pn te m)
e R (h t: /o ah s :8 8/ )o eS r a( ;
S rn r so s = I Ui st Sr n (n uS ra )
t ig e pn e
O tl . ot ig ip tt e m;
a sr Eu l( ms e " r s os )
s et q as "a tr , ep ne ;

we are still receiving correct response
slave has been nominated to the master
Examples
https://github.com/hekonsek/fuse-pocs/tree/master/fuse-pocsfabric
Many thanks!

Contenu connexe

Tendances

Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"Pivorak MeetUp
 
Spring scala - Sneaking Scala into your corporation
Spring scala  - Sneaking Scala into your corporationSpring scala  - Sneaking Scala into your corporation
Spring scala - Sneaking Scala into your corporationHenryk Konsek
 
AWS 서비스를 활용한 애플리케이션 고급 배포 자동화 기법
AWS 서비스를 활용한 애플리케이션 고급 배포 자동화 기법AWS 서비스를 활용한 애플리케이션 고급 배포 자동화 기법
AWS 서비스를 활용한 애플리케이션 고급 배포 자동화 기법Amazon Web Services Korea
 
Amazon ECS를 통한 Docker 콘테이너의 지속적 배포(CD) 방법
Amazon ECS를 통한 Docker 콘테이너의 지속적 배포(CD) 방법Amazon ECS를 통한 Docker 콘테이너의 지속적 배포(CD) 방법
Amazon ECS를 통한 Docker 콘테이너의 지속적 배포(CD) 방법Amazon Web Services Korea
 
IPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the UnplannableIPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the UnplannableRobert Lemke
 
PyData Paris 2015 - Track 3.2 Serge Guelton et Pierrick Brunet
PyData Paris 2015 - Track 3.2 Serge Guelton et Pierrick Brunet PyData Paris 2015 - Track 3.2 Serge Guelton et Pierrick Brunet
PyData Paris 2015 - Track 3.2 Serge Guelton et Pierrick Brunet Pôle Systematic Paris-Region
 
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석Amazon Web Services Korea
 
Bds school booklet-campus-forms_examples
Bds school booklet-campus-forms_examplesBds school booklet-campus-forms_examples
Bds school booklet-campus-forms_examplesBrown Design Studio
 
Ceh v8 labs module 18 buffer overflow
Ceh v8 labs module 18 buffer overflowCeh v8 labs module 18 buffer overflow
Ceh v8 labs module 18 buffer overflowMehrdad Jingoism
 
Spacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own ServerSpacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own ServerJulio Terra
 
Ceh v8 labs module 10 denial of service
Ceh v8 labs module 10 denial of serviceCeh v8 labs module 10 denial of service
Ceh v8 labs module 10 denial of serviceMehrdad Jingoism
 
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33Guy Boulianne
 
AN INCREMENTAL LEARNING ALGORITHM
AN INCREMENTAL LEARNING ALGORITHMAN INCREMENTAL LEARNING ALGORITHM
AN INCREMENTAL LEARNING ALGORITHMESCOM
 
An approach to Programming Contests with C++
An approach to Programming Contests with C++An approach to Programming Contests with C++
An approach to Programming Contests with C++VNIT-ACM Student Chapter
 
Ceh v8 labs module 12 hacking webservers
Ceh v8 labs module 12 hacking webserversCeh v8 labs module 12 hacking webservers
Ceh v8 labs module 12 hacking webserversMehrdad Jingoism
 
2017 09-17 주일예배, 눅14장01절-24절, 강권하여 데려오라
2017 09-17 주일예배, 눅14장01절-24절, 강권하여 데려오라2017 09-17 주일예배, 눅14장01절-24절, 강권하여 데려오라
2017 09-17 주일예배, 눅14장01절-24절, 강권하여 데려오라Myoung-Ryun Mission Presbyterian Church
 
Hoja de vida jogc
Hoja de vida jogcHoja de vida jogc
Hoja de vida jogcjogc62
 

Tendances (20)

Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"
 
Spring scala - Sneaking Scala into your corporation
Spring scala  - Sneaking Scala into your corporationSpring scala  - Sneaking Scala into your corporation
Spring scala - Sneaking Scala into your corporation
 
AWS 서비스를 활용한 애플리케이션 고급 배포 자동화 기법
AWS 서비스를 활용한 애플리케이션 고급 배포 자동화 기법AWS 서비스를 활용한 애플리케이션 고급 배포 자동화 기법
AWS 서비스를 활용한 애플리케이션 고급 배포 자동화 기법
 
Amazon ECS를 통한 Docker 콘테이너의 지속적 배포(CD) 방법
Amazon ECS를 통한 Docker 콘테이너의 지속적 배포(CD) 방법Amazon ECS를 통한 Docker 콘테이너의 지속적 배포(CD) 방법
Amazon ECS를 통한 Docker 콘테이너의 지속적 배포(CD) 방법
 
IPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the UnplannableIPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the Unplannable
 
Fast api
Fast apiFast api
Fast api
 
PyData Paris 2015 - Track 3.2 Serge Guelton et Pierrick Brunet
PyData Paris 2015 - Track 3.2 Serge Guelton et Pierrick Brunet PyData Paris 2015 - Track 3.2 Serge Guelton et Pierrick Brunet
PyData Paris 2015 - Track 3.2 Serge Guelton et Pierrick Brunet
 
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
콘테이너 운영을 위한 Amazon EC2 Container Service(ECS) 집중 분석
 
Bds school booklet-campus-forms_examples
Bds school booklet-campus-forms_examplesBds school booklet-campus-forms_examples
Bds school booklet-campus-forms_examples
 
Ceh v8 labs module 18 buffer overflow
Ceh v8 labs module 18 buffer overflowCeh v8 labs module 18 buffer overflow
Ceh v8 labs module 18 buffer overflow
 
Spacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own ServerSpacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own Server
 
Ceh v8 labs module 10 denial of service
Ceh v8 labs module 10 denial of serviceCeh v8 labs module 10 denial of service
Ceh v8 labs module 10 denial of service
 
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
 
ground water contamination
ground water contaminationground water contamination
ground water contamination
 
AN INCREMENTAL LEARNING ALGORITHM
AN INCREMENTAL LEARNING ALGORITHMAN INCREMENTAL LEARNING ALGORITHM
AN INCREMENTAL LEARNING ALGORITHM
 
An approach to Programming Contests with C++
An approach to Programming Contests with C++An approach to Programming Contests with C++
An approach to Programming Contests with C++
 
Ceh v8 labs module 12 hacking webservers
Ceh v8 labs module 12 hacking webserversCeh v8 labs module 12 hacking webservers
Ceh v8 labs module 12 hacking webservers
 
Aaaaaa
AaaaaaAaaaaa
Aaaaaa
 
2017 09-17 주일예배, 눅14장01절-24절, 강권하여 데려오라
2017 09-17 주일예배, 눅14장01절-24절, 강권하여 데려오라2017 09-17 주일예배, 눅14장01절-24절, 강권하여 데려오라
2017 09-17 주일예배, 눅14장01절-24절, 강권하여 데려오라
 
Hoja de vida jogc
Hoja de vida jogcHoja de vida jogc
Hoja de vida jogc
 

En vedette

Clarion Corporate Presentation
Clarion Corporate PresentationClarion Corporate Presentation
Clarion Corporate PresentationClarion Marketing
 
2014 REVISTA MEXICANA DE CIENCIAS GEOLÓGICAS - Study of Cedral Horses and the...
2014 REVISTA MEXICANA DE CIENCIAS GEOLÓGICAS - Study of Cedral Horses and the...2014 REVISTA MEXICANA DE CIENCIAS GEOLÓGICAS - Study of Cedral Horses and the...
2014 REVISTA MEXICANA DE CIENCIAS GEOLÓGICAS - Study of Cedral Horses and the...Ruben LLumihucci
 
Kaliteli sofralik uzum yetistiriciligi
Kaliteli sofralik uzum yetistiriciligi Kaliteli sofralik uzum yetistiriciligi
Kaliteli sofralik uzum yetistiriciligi adex25
 
EDS selection & implementation @ CCC
EDS selection & implementation @ CCCEDS selection & implementation @ CCC
EDS selection & implementation @ CCCMolly Beestrum
 
2012 04-24prezentacja-szkoly
2012 04-24prezentacja-szkoly2012 04-24prezentacja-szkoly
2012 04-24prezentacja-szkolysp11bialystok
 
Tugas softskill harits materi
Tugas softskill harits materiTugas softskill harits materi
Tugas softskill harits materiRietz Wiguna
 
Salon Maison Passive - Enterprise Europe Brussels - Technology Watch services
Salon Maison Passive - Enterprise Europe Brussels - Technology Watch servicesSalon Maison Passive - Enterprise Europe Brussels - Technology Watch services
Salon Maison Passive - Enterprise Europe Brussels - Technology Watch servicesecobuild.brussels
 
台南市腦性麻痺之友協會介紹
台南市腦性麻痺之友協會介紹台南市腦性麻痺之友協會介紹
台南市腦性麻痺之友協會介紹輝 哲
 

En vedette (20)

Adani Power LTD
Adani Power LTDAdani Power LTD
Adani Power LTD
 
Clarion Corporate Presentation
Clarion Corporate PresentationClarion Corporate Presentation
Clarion Corporate Presentation
 
Dab report new
Dab report newDab report new
Dab report new
 
PIA AA AD16.
PIA AA AD16.PIA AA AD16.
PIA AA AD16.
 
2014 REVISTA MEXICANA DE CIENCIAS GEOLÓGICAS - Study of Cedral Horses and the...
2014 REVISTA MEXICANA DE CIENCIAS GEOLÓGICAS - Study of Cedral Horses and the...2014 REVISTA MEXICANA DE CIENCIAS GEOLÓGICAS - Study of Cedral Horses and the...
2014 REVISTA MEXICANA DE CIENCIAS GEOLÓGICAS - Study of Cedral Horses and the...
 
RAPPORTO EXPORT ABRUZZO
RAPPORTO EXPORT ABRUZZORAPPORTO EXPORT ABRUZZO
RAPPORTO EXPORT ABRUZZO
 
Kaliteli sofralik uzum yetistiriciligi
Kaliteli sofralik uzum yetistiriciligi Kaliteli sofralik uzum yetistiriciligi
Kaliteli sofralik uzum yetistiriciligi
 
Lamothermic
LamothermicLamothermic
Lamothermic
 
EDS selection & implementation @ CCC
EDS selection & implementation @ CCCEDS selection & implementation @ CCC
EDS selection & implementation @ CCC
 
Condensed chater
Condensed chaterCondensed chater
Condensed chater
 
MANAGEMENT E COMUNICAZIONE DI CRISI
MANAGEMENT E COMUNICAZIONE DI CRISIMANAGEMENT E COMUNICAZIONE DI CRISI
MANAGEMENT E COMUNICAZIONE DI CRISI
 
Pepsi
PepsiPepsi
Pepsi
 
2012 04-24prezentacja-szkoly
2012 04-24prezentacja-szkoly2012 04-24prezentacja-szkoly
2012 04-24prezentacja-szkoly
 
Friendly cities
Friendly citiesFriendly cities
Friendly cities
 
introduction to computer
introduction to computerintroduction to computer
introduction to computer
 
Tugas softskill harits materi
Tugas softskill harits materiTugas softskill harits materi
Tugas softskill harits materi
 
Positive mind set
Positive mind setPositive mind set
Positive mind set
 
Salon Maison Passive - Enterprise Europe Brussels - Technology Watch services
Salon Maison Passive - Enterprise Europe Brussels - Technology Watch servicesSalon Maison Passive - Enterprise Europe Brussels - Technology Watch services
Salon Maison Passive - Enterprise Europe Brussels - Technology Watch services
 
台南市腦性麻痺之友協會介紹
台南市腦性麻痺之友協會介紹台南市腦性麻痺之友協會介紹
台南市腦性麻痺之友協會介紹
 
Jackson
JacksonJackson
Jackson
 

Similaire à Testing Fuse Fabric with Pax Exam

Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docxherminaprocter
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docxodiliagilby
 
Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016 Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016 DISID
 
Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and ProfitNicholas Jansma
 
Advanced QUnit - Front-End JavaScript Unit Testing
Advanced QUnit - Front-End JavaScript Unit TestingAdvanced QUnit - Front-End JavaScript Unit Testing
Advanced QUnit - Front-End JavaScript Unit TestingLars Thorup
 
Social Network Analysis With R
Social Network Analysis With RSocial Network Analysis With R
Social Network Analysis With RDavid Chiu
 
Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"Pivorak MeetUp
 
Type Systems on the example of TypeScript
Type Systems on the example of TypeScriptType Systems on the example of TypeScript
Type Systems on the example of TypeScriptArtur Skowroński
 
Code GPU with CUDA - Identifying performance limiters
Code GPU with CUDA - Identifying performance limitersCode GPU with CUDA - Identifying performance limiters
Code GPU with CUDA - Identifying performance limitersMarina Kolpakova
 
Running Puppet In Stand Alone Mode
Running Puppet In Stand Alone ModeRunning Puppet In Stand Alone Mode
Running Puppet In Stand Alone Modesarguru90
 
GraphQL Relay Introduction
GraphQL Relay IntroductionGraphQL Relay Introduction
GraphQL Relay IntroductionChen-Tsu Lin
 
An Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsAn Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsMiloš Sutanovac
 
No Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven DevelopmentNo Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven DevelopmentDuretti H.
 
Design and Fabrication for Motorized Automated Screw Jack
Design and Fabrication for Motorized Automated Screw JackDesign and Fabrication for Motorized Automated Screw Jack
Design and Fabrication for Motorized Automated Screw JackHitesh Sharma
 
PyLadies Talk: Learn to love the command line!
PyLadies Talk: Learn to love the command line!PyLadies Talk: Learn to love the command line!
PyLadies Talk: Learn to love the command line!Blanca Mancilla
 
Auntonomous second no4
Auntonomous second no4Auntonomous second no4
Auntonomous second no4Jun Terauchi
 
PARASITIC COMPUTING: PROBLEMS AND ETHICAL CONSIDERATION
PARASITIC COMPUTING: PROBLEMS AND ETHICAL CONSIDERATIONPARASITIC COMPUTING: PROBLEMS AND ETHICAL CONSIDERATION
PARASITIC COMPUTING: PROBLEMS AND ETHICAL CONSIDERATIONDr. Michael Agbaje
 

Similaire à Testing Fuse Fabric with Pax Exam (20)

Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
 
Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016 Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016
 
Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and Profit
 
Advanced QUnit - Front-End JavaScript Unit Testing
Advanced QUnit - Front-End JavaScript Unit TestingAdvanced QUnit - Front-End JavaScript Unit Testing
Advanced QUnit - Front-End JavaScript Unit Testing
 
Social Network Analysis With R
Social Network Analysis With RSocial Network Analysis With R
Social Network Analysis With R
 
Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"
 
JavaFX, because you're worth it
JavaFX, because you're worth itJavaFX, because you're worth it
JavaFX, because you're worth it
 
Type Systems on the example of TypeScript
Type Systems on the example of TypeScriptType Systems on the example of TypeScript
Type Systems on the example of TypeScript
 
Code GPU with CUDA - Identifying performance limiters
Code GPU with CUDA - Identifying performance limitersCode GPU with CUDA - Identifying performance limiters
Code GPU with CUDA - Identifying performance limiters
 
Running Puppet In Stand Alone Mode
Running Puppet In Stand Alone ModeRunning Puppet In Stand Alone Mode
Running Puppet In Stand Alone Mode
 
GraphQL Relay Introduction
GraphQL Relay IntroductionGraphQL Relay Introduction
GraphQL Relay Introduction
 
An Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsAn Introduction to CSS Preprocessors
An Introduction to CSS Preprocessors
 
No Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven DevelopmentNo Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven Development
 
CNC.pdf
CNC.pdfCNC.pdf
CNC.pdf
 
Design and Fabrication for Motorized Automated Screw Jack
Design and Fabrication for Motorized Automated Screw JackDesign and Fabrication for Motorized Automated Screw Jack
Design and Fabrication for Motorized Automated Screw Jack
 
PyLadies Talk: Learn to love the command line!
PyLadies Talk: Learn to love the command line!PyLadies Talk: Learn to love the command line!
PyLadies Talk: Learn to love the command line!
 
javapravticalfile.doc
javapravticalfile.docjavapravticalfile.doc
javapravticalfile.doc
 
Auntonomous second no4
Auntonomous second no4Auntonomous second no4
Auntonomous second no4
 
PARASITIC COMPUTING: PROBLEMS AND ETHICAL CONSIDERATION
PARASITIC COMPUTING: PROBLEMS AND ETHICAL CONSIDERATIONPARASITIC COMPUTING: PROBLEMS AND ETHICAL CONSIDERATION
PARASITIC COMPUTING: PROBLEMS AND ETHICAL CONSIDERATION
 

Plus de Henryk Konsek

How to cloud #1: Create Kafka cluster with Confluent Cloud
How to cloud #1:  Create Kafka cluster with Confluent CloudHow to cloud #1:  Create Kafka cluster with Confluent Cloud
How to cloud #1: Create Kafka cluster with Confluent CloudHenryk Konsek
 
Eclipse Kapua messaging refactoring proposal
Eclipse Kapua messaging refactoring proposalEclipse Kapua messaging refactoring proposal
Eclipse Kapua messaging refactoring proposalHenryk Konsek
 
Open source IoT gateway
Open source IoT gatewayOpen source IoT gateway
Open source IoT gatewayHenryk Konsek
 
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and RhiotOpen source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and RhiotHenryk Konsek
 
Iot gateway dream team - Eclipse Kura and Apache Camel
Iot gateway dream team - Eclipse Kura and Apache CamelIot gateway dream team - Eclipse Kura and Apache Camel
Iot gateway dream team - Eclipse Kura and Apache CamelHenryk Konsek
 
Internet Of Things for mere mortals
Internet Of Things for mere mortalsInternet Of Things for mere mortals
Internet Of Things for mere mortalsHenryk Konsek
 
(Ultra quick) Rhiot overview
(Ultra quick) Rhiot overview(Ultra quick) Rhiot overview
(Ultra quick) Rhiot overviewHenryk Konsek
 
Internet Of Things for mere mortals
Internet Of Things for mere mortalsInternet Of Things for mere mortals
Internet Of Things for mere mortalsHenryk Konsek
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortalsHenryk Konsek
 
Iot and the back-end developers
Iot and the back-end developersIot and the back-end developers
Iot and the back-end developersHenryk Konsek
 
Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.Henryk Konsek
 
IoT gateway dream team - Eclipse Kura and Apache Camel
IoT gateway dream team - Eclipse Kura and Apache CamelIoT gateway dream team - Eclipse Kura and Apache Camel
IoT gateway dream team - Eclipse Kura and Apache CamelHenryk Konsek
 
Apache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleHenryk Konsek
 
Fabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymoreFabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymoreHenryk Konsek
 
Messaging with the Docker
Messaging with the DockerMessaging with the Docker
Messaging with the DockerHenryk Konsek
 
Crash course to the Apache Camel
Crash course to the Apache CamelCrash course to the Apache Camel
Crash course to the Apache CamelHenryk Konsek
 

Plus de Henryk Konsek (17)

How to cloud #1: Create Kafka cluster with Confluent Cloud
How to cloud #1:  Create Kafka cluster with Confluent CloudHow to cloud #1:  Create Kafka cluster with Confluent Cloud
How to cloud #1: Create Kafka cluster with Confluent Cloud
 
Eclipse Kapua messaging refactoring proposal
Eclipse Kapua messaging refactoring proposalEclipse Kapua messaging refactoring proposal
Eclipse Kapua messaging refactoring proposal
 
Containerize!
Containerize!Containerize!
Containerize!
 
Open source IoT gateway
Open source IoT gatewayOpen source IoT gateway
Open source IoT gateway
 
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and RhiotOpen source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
 
Iot gateway dream team - Eclipse Kura and Apache Camel
Iot gateway dream team - Eclipse Kura and Apache CamelIot gateway dream team - Eclipse Kura and Apache Camel
Iot gateway dream team - Eclipse Kura and Apache Camel
 
Internet Of Things for mere mortals
Internet Of Things for mere mortalsInternet Of Things for mere mortals
Internet Of Things for mere mortals
 
(Ultra quick) Rhiot overview
(Ultra quick) Rhiot overview(Ultra quick) Rhiot overview
(Ultra quick) Rhiot overview
 
Internet Of Things for mere mortals
Internet Of Things for mere mortalsInternet Of Things for mere mortals
Internet Of Things for mere mortals
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortals
 
Iot and the back-end developers
Iot and the back-end developersIot and the back-end developers
Iot and the back-end developers
 
Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.
 
IoT gateway dream team - Eclipse Kura and Apache Camel
IoT gateway dream team - Eclipse Kura and Apache CamelIoT gateway dream team - Eclipse Kura and Apache Camel
IoT gateway dream team - Eclipse Kura and Apache Camel
 
Apache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whale
 
Fabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymoreFabric8 - Being devOps doesn't suck anymore
Fabric8 - Being devOps doesn't suck anymore
 
Messaging with the Docker
Messaging with the DockerMessaging with the Docker
Messaging with the Docker
 
Crash course to the Apache Camel
Crash course to the Apache CamelCrash course to the Apache Camel
Crash course to the Apache Camel
 

Dernier

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Dernier (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Testing Fuse Fabric with Pax Exam

  • 1. Testing Fuse Fabric with Pax Exam Brought to you by Henryk Konsek / @hekonsek
  • 2. This talk 1. Our goals 2. Pax Exam 3. Case studies
  • 4. Our problems OSGi ;) it works on my computer aka responsibility ping-pong creating repeatable middleware proof of concepts is difficult going production without proper testing
  • 5. Our goals repeatable tests of middleware - infracoding OSGi issues detected and fixed as soon as possible educated customers sending us runnable and repeatable examples
  • 7. What is Pax Exam JUnit friendly framework for running tests in real Karaf containers Exam deploys JUnit test case as a bundle if the bundle can be successfully tested with the Exam, then it can be successfully deployed to Karaf
  • 8. Exam hello world! Project structure m-r jc ypo e t m -r jc -e v cs y p oe ts ri e m -r jc -o t s y p oe tr ue .. . m -r jc -u d e y p oe tb nl m -r jc -t s y p oe ti et
  • 9. Exam hello world! JUnit class @ uW t( aE a.l s) R ni h Px xmca s p bi c as MK rf et e tn sA sr { u lc l s ya a Ts x ed se t @n et Ij c MO gS ri em O gS ri e ys i ev c ys ie v c; @o fg rt o Cn i ua in pb i Ot o[ c ni ua in ) { ul c pi n] o fg r to ( .. . } @ et Ts p bi v i s o lR tr Rs o s( { u l c o d hu de u ne pn e) .. . } }
  • 10. Exam hello world! Karaf configuration @ of gr to C ni u ai n p bi O to [ c n iu ai n) { u lc p in ] of gr t o( rt r nw Ot o[ { eu n e pi n ] k rf it iu i no fg rt o ( a a Ds rb to Cn i ua in ) .r mw rU l f ae ok r ( m vn )g o pd"r .p c ek rf )a tf c I( aa h- aa " ae (. ru I(o ga ah .a a" . ri at d" p ce kr f) .y e " i ". es o ( 2 33 ). t p( zp)v r in". ." ) kr fe s o( 23 3)n m( Aa h Kr f) a aV ri n" . .".a e " pc e aa " . na ki e tr(e F l( tr e/ a ") up cD rc oyn w i e "a gt px ) . sD po F le(a s) k eR ni e od r) ue el yo drf le , ep ut mF le ( , c ni ue os l ( . go eo a Cn oe )i nr R mt Se l ) o f gr Cn oe )i n rL cl os l(. go ee oe h l( , m vn ud e) g op d " o. x ml ". ri at d"y po et bn l ". a e Bn l( .r uI ( cm ea pe )a t fc I(m- r jc -u de ) vr in sn r jc (} e so AI Po et ); }
  • 11. Exam hello world! Testing OSGi service @ uW t( aE a.l s) R ni h Px xmca s p bi c as MK rf et e tn sA sr { u lc l s ya a Ts x ed se t @ ne t Ijc M Og Sr ie m Og Sr ie y s ie vc y si e vc ; @ of gr to C n iu ai n p bi O to [ cn iu ai n ){ u l c p in ] of g rt o( .. . } @ et Ts p bi v i s o lR tr Rs o s( { u l c o d hu de u ne pn e) as rE ul ( Hl o" m Og Sr ie h lo ol () s et qa s" el !, y s ie vc .e lW r d) ; } }
  • 12. Exam hello world! Testing OSGi Camel service @ uW t( aE a.l s) R ni h Px xmca s p bi c as MD po eC m le t e tn sA s r { u lc l s ye l yd ae Ts xe d se t @n et Ij c Cm lo tx c ml ot x ; ae C ne t a e Cn et @o fg rt o Cn i ua in pb i Ot o[ c ni ua in ) {. } ul c pi n] o fg r to ( .. @e t Ts pb i vi so l Rt rR so s ( { ul c od h ud eu n ep ne ) S rn r so s =c ml ot x .r ae rd cr e pa e) t i g e pn e a e Cn et ce tP o ue Tm lt ( . rq et oy " m: uu " "s " Sr n.ls ) e us Bd (j sq e e, m g, ti gca s; a sr Eu l(H lo " rs os ) s e tq as "e l ! , ep n e ; } }
  • 14. Case #1: Hello world! Arm your POM < eo io is r ps t re > <e oi oy rp s tr > < dj os fs - a/ d i > bs -u ee <i > < r>tp :/ e oi oy jo s og nx sc ne t go p/ a/ r> u lht s/ rp st r .b s. r/ eu / ot n/ ru s e< ul <r ps tr > /e o io y < rp st re > / eo i oi s Engineering guys deploy here. < rp ri s p oe t e> <a rc vr in 1 00 rd a- 4<f bi -e so > fb i -e so >. .. e ht 30/a rc v ri n < po et e> / rp r is Pick up some bleeding edge yet stable version of Fabric test API.
  • 15. Case #1: Hello world! Arm your POM < ee dn y d pn e c> <r ui > o fb i 8/ ru i> go p di .a rc <g o pd <r ia td fb i 8k rf /r i at d at f ci >a rc -a a <a tf ci > <e so >{ ar c vr in <v r in vr i n $ fb i- es o }/ es o> <y e z p/ ye tp > i< tp > < dp ne c> / ee d ny Download Fabric distribution. < ee dn y d pn e c> <r ui >o fb i 8i et <g o pd go p d i .a rc .t s s/ ru i> <r ia td fb i -t ss cm o <a tf ci > at f ci >a rc ie t -o mn /r ia t d <e so >{ ar c vr in <v r in vr i n $ fb i- es o }/ es o> < dp ne c> / ee d ny Include Fabric test API (and nothing more!).
  • 16. Case #1: Hello world! Tested Camel route p bi c as Nt yt po t et n sR ue ul e { u lc l s et H tR ue x ed o tB i dr @ vr ie O e rd p bi v i c n iu e) tr w Ec pi n { u l c o d of gr ( h os x et o fo (n ty h t: tp /l c lo t1 00 ". r m" et -t ph t :/ oa hs :8 8 /) s to y) c nt n(Hl o wr d" ; eB d( .o sa t"e l ol ! ) } }
  • 17. Case #1: Hello world! Base test class i pr i .a rc .t ss p xx ms po tF b iT sS po t m ot o fb i8 i et .a ea . up r. ar ce t up r; .. . @ uW t( Ui 4e t un rc as R ni h Jn tT sR ne . ls) @ xm ec oS rt g(l Cn ie S ae Ra tr at r .l s) E aR a tr ta ey Al o fn dt gd ec o Fc oy ca s p bi c as Sm lF bi T s e t nsFb iT sS p ot { u lc l s ip e ar ce t xe d ar c et up r @o fg rt o Cn i ua in pb i Ot o[ c ni ( { ul c pi n] o fg ) r tr n wO to [{ e u n e p i n] nw Df ut o ps tO to ( ar ci ti ui n of gr to () e e al Cm oi e pi nf bi Ds r bt oC ni u ai n) , m vn ud e "o mn -o ,"o mn -o )v r in sn rj c( ae Bn l( cm o si " cm os i ". es oA I Po et ) } ; } .. . } almost no config? Buy Ioannis a beer for creating the FabricTestSupport ;) yeah, this is the old and ugly Pax Exam 2.x API... you need to configure everything you use in the test bundle
  • 18. Case #1: Hello world! Deploying Camel route i pr s ai jv . ag Ss e. r; m ot t tc a al n. y tm er @ et Ts p bi v i s ol C et Cm lo t r) tr w Ec pi n{ u lc o d hu dr ae a eR ue ( ho s xe t o er pi tnee u eo mn (f b i: ra e- ") r. r nl(x ct Cm a d" ar cc et n); er pi tn ee u eo mn ( f b i: rf l- ra e "+ r. r nl(x ct Cm a d" ar cp oi e ce t " -a et f au ec m ln ty ht -e v r); - p rn s e t r- ae e t -t ps re ") er pi tnee u eo mn (f b i: rf l- dt " + r. r nl(x ct Cm a d" ar cp oi e ei " -e tr sc m ln ty ht n ty ht - ev r); - f au e ae -e t -t p et -t ps re " ) er pi tnee u eo mn (f b i: rf l- dt - bn ls "+ r. r nl(x ct Cm a d" ar cp oi e ei - ud e " v: o. xm l /y po et b nl /. -N PH T nt yh t- ev r); m n cm ea pe m- r jc -u de 10 S AS O et - tp sr e") Cn an ru le . ra e) ot i eB id rc et ( . w tN m( ru e -o ti e" . ih rf ls "e t -t ps re ". i h ae "o tr cn a nr )w tP oi e (n ty ht - ev r) a sr Po ii n nR sl ( . u l( ; s e tr vs oi ge u t) bi d) / . . as ri n / . se to s } String output = executeCommand("some:karafCommand"); assertProvisioningResult == block until container is ready
  • 19. Case #1: Hello world! Testing deployed route @ et Ts p bi v i s ol C et Cm lo t r) tr w Ec pi n{ u lc o d hu dr ae a eR ue ( ho s xe t o / . . ce tn c na nr / . ra ig o ti e Ip tt em ip t te m= nu S ra n uS ra n wU L" tp / lc lo t1 0 0" .p nt em ) e R( ht :/ oa h s: 88 /) oe S ra (; Sr n rs os = IU is tS r n( nu Sr a) ti g ep ne Ot l .o ti gi pt t em ; as rE ul (H l ow rd " rs os ) se t qa s" el o l !, e pn e; } a poor-man's HTTP client
  • 20. Case #1: Hello world! User friendly output f bi :r ae a rc c et n U ig se ii dz o ep rp sw r :d i s n p cf e ok ee as od am n f bi :r fl -r a e- pr ns f au ec ml nt y ht -e vr a rc p oi ec et - a et e tr -a e e t- tp s re f bi :r fl -d t -f au e cm ln ty h t n t yh t- ev r a rc p oi ee i -e t rs a e- et -t p et -t p sr e A dn f au ec ml nt y ht t po ie n ty ht -e v rv ri n1 0 d ig e tr :a e -e t- tp o r fl :e t- t ps re e so : . f bi :r fl -d t -b nl s. . nt yh t- ev r a rc p oi ee i -u d e . et -t p sr e A dn b nl :v :. t p oi en ty ht - ev rv ri n 10 d ig u de mn . . o r fl : et -t ps re es o: . W ii gf rc na n r: [r ue - ot ie 1] t sc es u l p oi i n a tn o ot ie s ot rc na nr o u cs fl y rv so C na nr ru e- o ti e1 Ai e fl eS au :S H UL nl o ti e :o tr cn an r l v: as t t s S R: u l C na nr ru e- o ti e1 Ai e tu Sa u :n lz n SH UL .. o ti e :o tr cn an r l v: re t ts aa y ig S R :. C na nr ru e- o ti e1 Ai e tu Sa u :o no dn S HU L. . o ti e :o tr cn an r l v: re t ts dw l ai g S R: . C na nr ru e- o ti e1 Ai e tu Sa u :i ai ig S HU L. . o ti e :o tr cn an r l v: re t ts fn l zn S R :. C na nr ru e- o ti e1 Ai e tu Sa u :u cs S HU L. . o ti e :o tr cn an r l v: re t ts sc e s S R: . output partially omitted (SSH address!) very similar to the output from the real Karaf session
  • 21. Case #2: Hacking child containers with SSH C na nr cn an r =( ot ie ) ce t( .i ha e "o tr cn an r ) o ti e o ti e C n an r ra e) w tN m(ru e -o ti e" . wt Po ie (n t yh t- ev r) ih r fl s" et -t p sr e". as rP oi in n Rs l( .u l (. tr tr)n x(; se t rv so ig eu t )b id ) i ea o ( . et ) S rn [ cn an rs Ul = cn an rg ts U l) sl t" "; t ig ] ot ie S hr ot i e. eS hr ( . p i( :) S rn c na nr ot =c n an rs Ul 0; t ig o ti eH s ot ie S hr [] S rn c na nr ot =c n an rs Ul 1; t ig o ti eP r ot ie S hr [] S rn b nl sn ot ie = ee u eo mn (o mt t ig u de OC n an r x ct Cm ad f ra ( "s - % - % - % % og : it , sh l s P s p s s s il s" "d i" " di " cn an ro t cn an r ot am n , a mn , ot i eP r, o ti eH s ); ) a sr Tu (u de O Cn an rc n an(c ml nt y ht ") s et r eb nl sn ot i e. ot is "a e -e t- tp ); running Karaf container can be accessed via SSH client we can execute any remote Karaf command via ssh
  • 22. Case #3: Fabric Master component test many customers request singleton Camel route in the clustered environment Fabric Master FTW! it is difficult to provide proof of concept for the customer Pax Exam + Fabric Master = no brainer demo
  • 23. Case #3: Fabric Master component test p bi c as Ms eR ue e tn sR ue ul e { u lc l s at r ot x ed ot Bi dr @v ri e Oe r d pb i vi cn i ue ) t rw E cp in { ul c od o fg r( ho s xe to f o(ms e: e t- at rn t yh t: tp /l c lo t1 01 " . r m"a tr nt ym s e: et -t ph t :/ oa hs : 88 / ) st oy )c n tn (m se " ; e Bd (. os at " at r) } } the clustered route we want to test only single Netty instance should handle requests at given moment
  • 24. Case #3: Fabric Master component test f bi :r ae a rc c et n f bi :r fl -r a e- pr nsf au ec ml ms e -e t a rc p oi ec et - a et e tr -a e a tr nt y f bi :r fl -d t -f au e cm ln ty h t m s e- et a rc p oi ee i -e t rs a e- et -t p at rn t y f bi :r fl -d t a rc p oi ee i -b nl sm nc m ea pe m- r jc-u de 10 S AS O ms e- et -u d e v: o. xm l /y po etbn l /. -N PH T at rn t y Booooring...
  • 25. Case #3: Fabric Master component test C na nr ms e =C na n ru le .r ae ) o ti e a tr ot ie Bi d rc et (. wt Nm (m se ".i hr fl s "a tr nt y ) ih a e" at r)wt P oi e (ms e- e t" . as rP oi in n Rs l( .u l (; se t rv so ig eu t )b id ) I pt te mi pt t em = n uS r a nu Sr a nw UL "t p/ l cl ot 10 1 ". pn te m) e R (h t: /o ah s :8 8/ )o eS r a( ; S rn r so s = I Ui st Sr n(n uS ra ) t ig e pn e O tl . ot igip tt e m ; a sr Eu l( ms e " r s os ) s et q as "a tr , ep ne ; creating first Netty router container in the cluster first router must be the master
  • 26. Case #3: Fabric Master component test C na nr sa e= C na nr ul e.r ae ) o ti e l v o ti e Bi drce t ( . w tN m( sa e )w tP oi e (m se -e t" . i h ae "l v" .i h rf ls "a tr n ty ) a sr Po ii n nR sl ( . u l( ; s e tr vs oi ge u t) bi d) no port conflicts? That's good - only the single master node is running.
  • 27. Case #3: Fabric Master component test C na nr ms e =. . o ti e a tr .; .. . m se .e to (; a tr d sr y) I pt te mi pt t em = n uS r a nu Sr a nw UL "t p/ l cl ot 10 1 ". pn te m) e R (h t: /o ah s :8 8/ )o eS r a( ; S rn r so s = I Ui st Sr n (n uS ra ) t ig e pn e O tl . ot ig ip tt e m; a sr Eu l( ms e " r s os ) s et q as "a tr , ep ne ; we are still receiving correct response slave has been nominated to the master