►
From YouTube: Jakarta Tech Talk - Jakarta EE integration testing
Description
Integration testing is difficult as you need additional systems, like a database, with a predefined set of data to have repeatable tests.
With the availability of the Testcontainers framework, developers can test the real application by deploying it in a container using the runtime that will be used in production and dependencies available in other containers.
In this session, we explore a few scenarios of how you can use the Testcontainers framework to test your Jakarta EE application, including a remote debug session of your code.
A
Hello,
everyone
and
welcome
to
another
Jakarta
Tech
talk.
My
name
is
Serena
and
joining
us
today
is
Rudy
who
will
be
presenting
on
the
topic
of
Jakarta
ee
integration
testing.
If
you
have
any
questions
for
Rudy
as
we
move
through,
today's
presentation
feel
free
to
ask
them
in
the
chat
or
use
the
ask
a
questions
tab
without
any
further
delay.
Rudy
over
to
you.
B
A
B
Around
five
years
apparently
so
it
was
a
good
time
to
review.
Maybe
what
is
available
for
integration
testing
within
the
platform
within
jakartae.
So
thank
you
for
joining
me
and
we
all
know
those
jokes
about
this
thing,
but
sadly
enough.
There
are
also
some
issues
with
applications
updates
that
people
put
in
production
and
sadly
enough.
B
Sometimes
you
put
things
in
production,
untested
and
yeah
that,
of
course,
your
production
environment
is
a
huge
test
environment
which
goes
fine
most
of
the
time
unless
it
goes
wrong,
like
maybe
you
remember
that
one
major
online
retail
store
which
did
an
update
on
Friday
evening
and
all
their
items,
including
some
electronic
items
costing
normally
more
than
a
few
hundred
years
or
the
dollars,
were
for
entire
weekends,
for
sale
for
99
cents.
So
testing
is
sadly
enough.
Important,
so
don't
use
your
test
environment
as
a.
A
B
B
B
B
Just
want
to
mention
that
integration
testing
can
find
some
other
things
than
unit
testing,
so
you
should
do
also
some
integration
testing,
although
that
is
difficult
and
Etc
I,
come
to
that
in
a
moment
in
a
in
a
moment,
a
bit
more
in
detail,
the
other
classic
I
could
not
find
a
better
image
with
higher
quality.
But
you
know
the
ID.
Those
windows
work
perfectly
fine
on
their
own.
They
are
of
tested
unit
tested,
but
in
the
production
situation
they
are
mounted
that
the
handle
of
the
window
blocks
each
other,
so
yeah.
B
So
for
those
who
does
not
know
me
I'm
already,
the
blizzard
people
call
me
a
Jakarta
ee
expert
I,
just
consider
myself
as
a
user
of
java
ee
Jakarta
ee,
now
already
for
something
like
15
years,
so
I
know
a
few
things.
Maybe
that
looks
like
for
a
lot
of
people
that
I'm
an
expert
in
that
area.
If
you
want
to
read
more
about
what
I'm
doing
around
Jakarta
ee
or
other
backend
development
stuff,
you
can
look
there
at
my
blog
at
bash.be
or
you
can
follow
me
on
social
platforms.
B
B
If
we
are
creating
unit
tests
where
we
Supply
the
parameters
of
the
functions,
some
values
which
are
not
really
what
are
in
in
the
in
the
same
category
or
the
same
values
and
what
you
can
expect
during
production,
then
it's
not
always
a
good
unit
test
and
people
tend
to
just
provide
some
value
so
that
their
code
coverage,
for
instance,
is
like
90
or
something,
but
actually
that's
not
always
related
to
what
the
business
is
using
in
there
how
it
is
in
production,
integration
test.
There
are,
of
course,
much
more
realistic.
B
You
have
an
integration
with
all
the
components,
and
we
all
know
that
it's
low
to
execute
brittle
more
difficult
to
to
implement
Etc.
What
I'm
going
to
present
today
is
a
framework
species,
especially
designed
for
Jakarta
ee
hearing
terms,
which
is
also
generic,
so
it
works
with
any
runtime,
but
it's
still
a
bit
slow
and
brittle,
but
at
least
it
is
much
easier
to
create
them
to
Define
them
so
to
check
out
if
they're
is
an
issue
where
to
do
a
remote
debugging,
for
instance.
B
So
at
least
that
point
is
solved
and
if
you
run
those
tests,
then,
for
instance
every
weekend
so
not
ever
with
every
commits,
but
occasionally
let's
say
every
week,
then
then
you
have
at
least
some
more
confidence.
If
you
put
some
code
in
production.
B
B
A
B
Of
which
parameter
values,
you're
testing,
then
the
second
level,
the
if
those
integration
test
things
sometimes
also
called
component
testing,
API
testing
or
whatever
that's
around
20,
and
if
your
application
has
a
visual
front-end,
a
guidance.
You
should
also
spend
some
time
on
testing
those
parts,
it's
even
harder
than
integration
testing
and
then
then,
what
I'm
going
to
present
today
but
yeah
try
to
do
it
in
an
automated
way
as
much
as
possible,
but
yeah
as
any
high
mountain
has
many
times
clouds
around
the
top,
because
not
everything
can
be
automated
in.
B
Way
of
course,
everything
is
possible
if
you
have
time
and
money,
but
if
you
spend
extreme
amounts
of
time
to
automate
those
last
few
cases,
then
probably
it
is
better
than
you
to
have
just
some
manual
testing.
It's
not
the
most
fun
thing
to
do,
and
you
should
avoid
it
as
possible,
but
don't
be
afraid
to
keep
some
manual
testing
and
test
scenarios.
B
Let's
go
to
the
Jakarta
ee
topic,
it's
about
integration
testing,
so
this
is
the
list
of,
as
you
probably
know,
a
list
of
all
the
specifications
which
are
available
in
the
Jakarta
eaten
platform.
It's
released
in
September,
if
I'm,
remembering
correctly,
with
a
lot
of
specifications
around
all
kinds
of
functionality
of
all
kinds
of
needs,
within
a
classic
application
from
business
law.
Logic,
dependency
injection
database
access
security
Etc.
B
We
don't
have
that
ee10
so
last
year,
as
about
a
year
that
I
also
realized
this
and
I
was
thinking,
let's
start,
bringing
together
some
code
that
I
have
used
in
various
projects
flying
around
on
my
computer
and
let's
try
to
create
something
for
Jakarta
integration
testing
which
might
be
someday.
Maybe
we
come
testing
1.0,
probably
not
in
ee
11,
because
plans
for
E11
are
getting
some
some
final
shape.
Now
so
not
for
11,
but
maybe
for
12.
Who
knows
that
we
have
testing
available
there,
because
testing
is
important.
A
B
First
of
all,
we
are
going
to
have
a
look
at
the
weld
J
unit,
which
is
according
to
the
definition
and
integration
testing,
but
looks
more
like
a
unit
testing.
So
it's
a
bit
in
between.
So
it's
a
good
starter
I'm
going
to
have
a
look
at
arcillion,
but
mainly
arguing
why
you
should
not
use
archilian.
If
you
are
testing
your
product
and
I'm
going
to
share.
A
B
My
opinion
is
about
it
and
why
I
believe
that
and
then,
as
I
mentioned
last
year,
I
started
working
on
what
I
called
the
adbash
integration
testing
framework,
which
is
based
on
test
containers,
is
using
wire,
Mock
and
DB
unit,
so
that
you
have
something
which
is
usable
for
any
Jakarta
ee
certified
runtime
that
you
can
run
those
integration
testing
in
a
uniform
way
in
a
rather
simple
way,
as
you
will
see
at
least
I
find
it
find
it
much
simpler.
I
hope
you
find
it
also.
B
and
the
eids
that
you
spin
up
a
CDI
container
a
weld
container
in
this
case
and
that
you
put
a
limited
set
of
CDI
bins
available
and
that
you
can
test
a
method
or
several
methods
which
are
depending
on
other
beans.
That
can
be
even
mocks
objects
quite
easily,
as
you
will
see
so
that
you
have
a
possibility
to
test
some
kind
of
business
logic
which
is
in
those
methods.
B
B
B
B
This
is
the
formula.
So
it
is
not
that
complex
and
it
has
One
external
dependency
and
that's
the
interest
rate.
So
if
we
need
to
pay
six
percent
or
five
percent,
that
of
course
influence
the
amount
of
money
that
I
need
to
pay
to
the
bank
again
each
month.
B
Maybe
database,
maybe
another
microservice
whatever,
but
it
is
here
a
bit
extracted
isolated
so
that
I
can
easily
change
it
or
later
on
change
where
that
value
is
coming
from.
B
So
that's
what
I'm
going
to
test
if
I'm
going
to
do
it
with
with
belt
J
units
I
have
a
test
which
looks
like
this,
where
I
have
a
clause,
of
course,
a
test
clause
which
I
annotate
with
an
extent
width,
so
a
junit
5
extension,
which
brings
me
the
possibility
that
I
set
up
my
weld
container,
which
I
will
be
using
for
this
test.
Specifically
that's
my
class,
which
contains
the
method
and
I'm
adding
a
mock,
because
I
want
to
be
able
to
specify
that
interest.
A
A
B
B
This
test
becomes
a
CDI
bin
on
its
own,
so
I
can
inject
my
class,
which
has
the
calculation
so
calculating
and
testing.
My
functional
functionality
becomes
quite
easy
by
just
calling
the
methods
on
the
instance
providing
it
with
with
values
and
I
have
a
reference
value
that,
with
those
two
input,
values
Ash
and
the
6.99
as
a
interest
rate
value,
I
should
have
a
monthly
amount
of
around
255.
B
B
Indeed,
this
value
is
the
correct
value
with
a
certain
amount
of
error
which
is
due
to
running
probably
and
to
prove
you
that
it's
actually
using
this
Mock,
and
it
was
also
for
me
a
proof
that
it
is
using
actually
using
this
mock
when
I
specify
another
value,
then
the
test
fails
because
it
returns
me
another
value
instead
of
the
expected
value.
So,
with
this
weld
the
unit
extension,
you
can
easily
test
some.
B
B
B
As
you
have
seen
you
with
reality
unit,
we
are
still
more
or
less
doing
unit
testing
as
testing
a
single
method,
although
we
have
dependencies
so
this
already
an
integration
test,
but
arcelian
is
probably
a
lot
of
you
have
either
used
it
or
at
least
know
the
name
is
providing
you
with
what
they
call
real
test
from
the
website.
They
say
we
are
executing
for
you,
your
real
tests,
wow,
it's
already
more
than
10
years
old.
B
First
release
was
in
2011
2012,
depending
on
what
you
call
the
first
final
production
release,
because
that's
not
always
the
one,
not
zero
people
and
project
declare
also
something
like
a
0.9
as
usable
in
production.
That's
of
course
finds
but
not
easy.
B
If
you
research
and
what
is
when
the
first
release
is
there,
but
I
have
put
a
real
tests
in
italic
because
I,
don't
I,
don't
believe
they
are
real
tests
and
they
are
not
and
are
killing
itself,
although
it
is
a
nice
framework
is
not
providing
you
real
tests
and
I
will
argue
why
I
believe
that.
B
So,
for
those
that
do
not
know
archilian,
these
are
the
main
six
steps.
What's
archilian
does,
first
of
all,
it
managed
the
life
cycle
of
the
container
in
2011
container
did
not
mean
Docker
container.
It
meant
it
means
that
your
runtime,
like
class
fish
Wilds,
fly
open,
Liberty
Etc.
B
It
started
at
the
beginning
of
your
test
class
and
or
start
of
your
tests
with
and
and
at
the
end
of
The
Suite,
so
it
managed
the
life
cycle
of
the
container,
and
then
it
bundles
your
test
cases.
So
your
test
class
with
some
dependent
clauses
and
resources
into
a
special
archive
which
called
by
the
friendly
shrink,
wrap
framework.
B
A
B
Have
executed
a
shrink
wrap
step,
then
you
will
see
that
you
have
some
test
classes
included
in
your
archive,
which
is
deployed
on
the
server.
That
is
then
the
first
thing
which
I
don't
like
in
the
sense
that,
if
you
know
the
12
Factor
app
philosophy
is
that
you
should
move
your
test
and
altered.
Sorry,
your
application
unaltered
from
development
to
test
to
production,
because
you
need
to
make
sure
that
whatever
you
have
tested
is
exactly
the
same
as
in
production.
B
B
Then
the
next
step
is
it
takes
that
archive
it
deploys
it
on
the
container.
What's
called
enriches
the
test
Case
by
providing
dependency
injection
and
under
declarative
Service,
as
we
have
all
seen
also
seen
by
that
wheelchair
unit.
So
you
can
have
access
to
your
test
under
your
class
under
test
within
your
test
class
and
then
most
of
the
time
people
are
executing
the
test
inside
the
container.
So
it
is
not
that
your
tests
are
running
or
accessing
some
ends
points,
for
example,
of
your
application
and
perform.
B
B
Also,
that's
sending
back
that
information,
especially
if
there
is
an
error
that
goes
most
of
the
time,
a
bit
sideways,
so
that
you
see
that
there
is
an
error.
But
you
have
no
idea
what
went
wrong
and
since
the
entire
setup
of
our
Killian
is
quite
complex
and
cumbersome
before
you
have
a
running
setup,
a
working
setup
that
can
take
some
time
and
the
errors
that
you
get
are
not
always
very
descriptive
or
informative.
B
Not
going
to
run
the
entire
alkaline
one
again,
that's
also
available
on
that
repo
I'm.
Just
highlighting
a
few
points
that
I
mentioned
so
mentioned.
There
is
a
lot
of
config
here,
so
I
started
from
a
Jakarta
e
starter
project,
not
the
one
which
is
now
in
the
progress
or
is
already
available
on
on
the
eclipse
website,
but
I
will
show
you
the
link
where
I
found
this.
There
is
one
person
who
made
a
great
effort
in
documenting
and
getting
examples
ready
because
it
is,
as
I
mentioned,
quite
cumbersome.
B
B
You
need
then,
to
Define
how
Herculean
is
is
going
to
submit
your
archive
to
The
Container,
let's
call
it
runtime.
You
have
also
plugins
required
to
to
have
that
working.
You
need,
as
you
see
here,
for
each
runtime,
a
specific
XML
that
specifies
where
the
runtime.
B
And
then
again,
we
are
testing
that
long
calculator,
so
I
can
create
a
test
for
that
again
with
an
extension
now
with
archilian
extension
here,
I
created
archive,
where
I
include
my
class
I
need
to
include
the
actual
CDI
bin
here,
where
I
hard
coded
the
value
and
then
I
need
to
if
I
want
to
have
some
mocks,
which
is
not
really
possible
with
Arcadian
I
cannot
create
a
mock
which
is
then
included
here
in
that
in
that
archive.
B
So
the
only
thing
that
I
can
do
is,
which
is
not
known
by
everyone.
I
guess,
is
by
CDI
specialized
bins
where
you
say
that
you're
extending
an
existing
bin
and
you
define
it
as
a
specialization
so
that
you
can
override
it
and
when
this
beam
is
available
together
with
the
original
one.
Well,
then,
this
specialized
version
is
mistake.
B
Again.
This
is
not
a
normal
way
how
your
class
operates.
Your
application
operates
in
production
because
you
have
two
beans
available
which
follows
the
same
contract
at
the
annual
interest
rate
service
here.
So
one
of
those
things
that
I
don't
like.
B
B
I
can
also
inject
that
alternative
being
so
that
I
can
change
that
rate
here,
because
I
have
made
it
adaptable
in
that
version
of
that,
CDI
bin
and
I
can
again
test
that
one.
B
So
it
is
possible,
some
people
are
using
it
and
if
you
want
to
make
use
of
it,
I
highly
recommend
the
work
by
hansibai
that
he
has
done.
Maybe
there
is
already
a
version
40
Carta
E10,
available
repo
there
is
for
each
runtime
there
is.
There
are
examples
available
how
you
get
a
project
started
and
that
you
can
start
creating
those
arcade
tests.
B
B
There
is
a
version
1.7,
which
is
in
Alpha,
since
April
2020
and
at
107
version
is
using
the
Jakarta
namespace.
So
it
should
not
be
1.7,
but
it
should
2.0
because
it's
a
major
breaking
change,
but
it's
still
in
Alpha,
because
the
only
reason
there
is
that
version
1.7
is
because
of
the
Jakarta
eetck
tests
are
using
or
many.
B
B
Is
then
Jakarta
ee
tck
tests
wrong
that
they
are
using
archilian?
Well,
for
that
use
case,
I
can
more
or
less
understand
why
something
like
arcillin
is
used.
B
So
by
now
it
should
be
already
very
clear
that
I
don't
like
it,
because
it's
not
testing
your
real
bar
file
and
you
need
all
those
connectors
which
need
to
maintained
by
the
vendors,
which
is
not
always
the
case
or
not
always
done
quickly,
and
it
is
a
rather
complex
framework
and
you
can
easily
get
the
error.
Information
gets
lost,
so
that
can
be
sometimes
difficult
to
find
out.
Why
something
is
not
working
and
believe
me.
I
also
spent
a
lot
of
time
with
arcillion
and
I'm
still
not
getting
the
hang
of
it.
B
In
that
sense,
you
probably
also
know
test
containers
and
that
you
can
run
some
components
as
they
call
it
there
in
a
Docker
container.
So
you
can
you
run.
You
can
run
your
runtime
with
your
application
in
a
Docker
container.
You
can
have
other
external
dependencies
like
a
database
running
in
a
container
next
to
it.
So
in
that
sense,
test
containers
can
provide
you
a
better
solution
for
integration
testing,
because
you
have
the
your
application,
as
is
the
what
file,
which
you
also
going
to
put
in
production,
and
you
can
provide
some
alternative.
B
Yeah,
you
probably
know
the
features
there,
so
you
have
those
repeatable
tests
you
have.
You
can
have
even
selenium
to
test
your
front
end,
which
is
there
a
bit
more
stable
because
you
have
a
fixed
known
environment
which,
which
is
good.
You
can
simulate
networking
issues,
so
that's
also
nice
and
you
can
debug
realistic
scenarios
very
easily,
as
you
will
see
in
a
moment.
B
B
Okay,
we
have
the
database
here,
but
we
need
to
configure
then
probably
our
data
data
source
within
our
application
that
it
points
to
that
postgres
database.
Here
that
endpoint
we
need
to
ask
that
application
container.
What
is
your
IP
address?
What's
the
mapped
Port
because
bit
Docker
you
always
with
test
containers,
you
always
get
a
random
Port
assigned
so
that
you
can
have
that
you
can
run
tests
in
parallel
Etc.
So
there
are
a
few
things
which
the
developer
needs
to
do
over
and
over,
and
that
can
be
simplified
because
it's
always
the
same
pattern.
B
So
that
was
then
my
idea
last
year.
Let's
start
from
this
test
containers
and
improve
this
for
Jakarta
EE,
where
we
are
using
the
simplified
setup.
So
I
was
also
working
together
with
the
people
in
on
the
microprofile
side
on
what's
called
microshid
testing,
which
is
also
abandoned
now,
so
there
is
only
Jakarta
ee8
version
which
had
that
simplified
setup
for
test
containers.
If
you
have
your
application,
it
contains
a
container
deploy,
starts
it
up,
etc,
etc.
B
So
based
on
that
I,
started
that
integration
testing
framework.
As
I
mentioned,
it
supports
Jakarta,
E8
and
10.
It
has
a
flexible
and
simple
setup.
You
can
test
multiple
applications,
so
you
can
either
test
one
application
or
you
can
even
test
several.
If
you
have
created
several
micro
servers,
whatever
examples
that
work
together,
you
can
run
them
all
together
and
test
them
in
in
one
single
environment.
Okay,
you
can
use
wiremock
for
mocking
dependencies
for
for
examples,
and
there
is
supports
for
databases
through
Debbie
units.
B
So
let's
have
again
that
same
loan
calculator.
This
breakpoint
is
important.
I
will
show
you
in
a
moment
and
I
have
done
that
endpoint,
which
calls
that,
whereas
with
the
values
as
query
parameters-
and
this
is
still
from
my
testing
earlier
today-
so
first
of
all-
you
define
an
annotation
junit,
5
extension
again,
where
you
just
specify
there
are
other
properties
that
you
can
Define
you
see
there
are
you
can
do
a
volume
mapping
you
can
specify
where
the
your
file
is
located,
Etc
bits
by
default.
B
You
specify
that
wire
more
container,
because,
if
you're
looking
now
because
it
is
also
a
micro
profile
application.
If
we
go
to
the
calculator
here,
we
have
our
interest
rate,
but
now
it
is
not
hard
coded
anymore.
It
is
using
a
rest,
client,
a
micro
profile,
rest
client
interface.
B
So
it
is
just
a
reference
to
a
service
somewhere
and
that
service
is
configured
here
in
here
within
the
word
file,
but
you
can
override
it,
of
course,
with
your
environment
configuration.
So
my
interest
rate
is
now
researched
on
a
remote
host
called
remote
port
8080
and
that's
the
URL
part.
So
if
I
would
take
this
one
file,
this
application
and
I
would
try
to
access
that
endpoint.
B
It
will
fail
because
it
will
not
find
this
one,
but
it
is
still
testable
because
in
my
test,
I
defined
that
it
needs
to
start
up
a
container
a
container.
That
must
pretend
that
it
is
that
remote
host,
the
hostname
of
that
container,
is
host
this
sorry,
it's
remote
here.
So
that's
all
that's
already
linked,
which
is
made
between
the
two
components.
In
my
test.
B
A
B
B
I'm
using
the
same
micro
profile,
restline
functionality
to
find
out
where
my
endpoint
is
so
I'm
only
defining
the
configuration
of
configuration,
the
contract,
it's
not
the
conversion,
I
Define,
the
contract
of
that
endpoint
here
that
endpoint,
which
is
here
in
my
production,
application,
I
Define
it
here
in
the
same
way
that
I
do
with
micro
profile
the
rest,
client
and
actually
my
frame
and
my
integration
code
figures
it
out.
What
is
the
container
in
which
it
is
running?
What's
the
IP?
B
So
that
means
that
I
can
do
here.
A
remote
call
don't
be
fooled
about
this
method.
Call
it's
actually
a
remote
call
to
the
application.
Endpoint
I
get
my
data
back
automatic
conversion
to
to
and
from
Json
if
needed,
and
then
I
get
a
comparison
that
I
can
do
between
the
expected
and
the
return
value.
B
B
It
can
be
local,
I've
I
am
running
here,
Docker
desktop,
but
if
you
have,
for
instance,
the
test
containers,
Cloud
environment
and
you
can
run
it
on
on
the
cloud
environment
and
then
it's
not
running
locally,
so
it
is
performing
all
those
steps
and
at
the
end
it
calls
my
endpoint
and
I
get
my
value
back,
and
it
is
correct
again
to
prove
that
it
is
taking
this
value
I'm
going
to
start.
If
I
configure
my
mock
to
return
another
interest
rate,
if
it's
still,
okay
or
not,
it
should
not
be
okay.
B
So
my
test
is
now
red.
You
see,
it
is
still
that
that
slow
factor
is
still
there.
Also,
because
now
I'm
screen
sharing
my
fence
or
starting
to
work
because
I'm,
a.
B
So,
as
I
mentioned,
that
clouds
environment
might
be
a
better
solution
and
then
one
of
the
things
that
I
do
automatically
is
then,
when
a
test
fails
that
you
get
the
container
lock.
So
in
this
case,
I
take
the
entire
lock
from
the
pr
micro
container
and
I'm
putting
it
here
so
that
you
maybe
have
already
an
idea.
What
is
going
wrong?
Why?
It
is
not
what
you
expect.
A
B
Have
no
no
idea
why
this
failed
here
now:
okay,
it
was
interest
rate
but
stay
along,
and
we
don't
know
it
for
the
moment.
So,
let's
start
up
a
remote
debug
in
this
session.
This
is
actually
the
only
thing
that
you
need
to
change
either
for
pyara
micro
or
for
liberty
or
wildfly,
and
when
it
starts
up
it
says
that
a
certain
moment
it
starts
waiting
for
an
additional
time,
so
that
I
can
start
just
a
remote
debugging
succession.
B
My
I
connect
my
debit
locally
to
that
post
5005,
which
isn't
actually
within
my
container
once
the
debugger
is
connected
to
my
startup
continues
and
as
expected
as
and
when
and
I
always
hope
that
it
happens.
It
stops
at
that
breakpoint
at
the
airport
here,
so
I
can
see
that
my
interest
rate
was
5.99,
which
was
not
the
value.
What
was
expected
for
that
test,
so
I
can
even
on
the
Fly
change
it
here.
I
can
continue
my
tests
and
this
time
it
is
green.
B
B
I
have
here
with
with
open
liquidity
an
example
where
I
have
the
classic
endpoints
for
get
a
a
specific
ID.
So
a
specific
company
or
I
can
insert
one
I
Define
the
gndi
for
the
data
source.
Here
I
have
done
for
open
Liberty
that
server
XML,
where
you
need
to
specify
the
features
there
are
also
other
options
but
I'm
doing
it
most
of
the
time
like.
A
B
With
the
server
XML
and
I
also
defined,
then
the
gndi
name
that
it
that
it
needs
to
be
looking
for
a
driver
in
one
of
those
dependencies,
and
my
framework
is
picking
that
up
and
make
sure
that
the
the
jdbc
driver
is
copied
into
the
token
image.
At
this
location.
B
Where
you
can
specify
yeah.
B
A
specific
the
database,
but
you
don't
need
to
specify
it
is
discovered
automatically
I'll
show
you
in
a
moment,
but
it
also
specifies
what's
called
Data
script
files
which
SQL
file
it
needs
to
execute
for
creating
the
tables.
At
the
beginning
of
the
test
which
Excel
file
it
needs
to
use
to
populate
those
tables.
So
for
defining
the
database,
you
can
just
specify,
for
instance,
MySQL
or
test
container.
So
that's
the
official
MySQL
when,
by
test
container
itself,
the
dependency
brings
in
certain
classes
which
will
be
detected
and
the
framework
adapts
itself
to
mySQL.
B
We
have
those
resources
at
to
create
some
tables,
and
we
have
done
here
that
Excel
file
you
can
specify
for
each
test.
Another
Excel
file,
for
example,
an
Excel
file
with
the
data
which
need
to
import
to
be
imported
in
the
company
table
here,
for
instance,
I,
have
the
ID
and
and
the
and
the
names
again
if
we
run
it
take
some
time.
But
all
the
pieces
are
assembled
for
you
behind
the
scenes.
B
B
With
that
database
container
image
names,
you
can
specify
there
yourself,
which
image
it
is
using
so
that
it
match,
for
example,
for
example
your
case
it
has
assembled
all
the
things
as
I
mentioned
and
my
ads
company
is
executed
both
or
green,
but,
as
you
can
see,
this
is
the
end
point
that
I'm
calling,
but
I
can
also
connect
directly
to
the
database
again
and
ask
for
how
many
rows
are
there
in
that
table
and
I
can
even
perform
them
a
select
on
the
table
to
see
what's
in
there
and
match
and
see
if
the
data
matches
what
I'm
expecting.
B
So
you
can
really
do
end-to-end
testing
and
this
database
connection
is
coming
here
from
that
abstract.
Clause
here,
so
you
have
really
seen
it
at
the
extend
an
abstract
loss,
so
by
default
that
the
connection
to
the
database
is
available
there
during
your
tests,
that's
kind
of
injection
which
is
on
there
automatically.
B
So
my
preferred
integration
stack.
What
I'm
doing
is
world.belt
a
unit
testing
there.
Of
course,
unit
testing
by
default,
gbj
unified
that
the
wheelchair
unit
and
I
always
use
something
in
the
past
based
on
the
test
containers,
but
now
I'm.
Switching
to
that
my
own
framework
there,
because
it
is
most
of
the
time
easier
to
configure
and
you
can
switch
it
even
from
weather
and
time
to
another.
B
Not
sure
if
there
are
any
questions,
but
maybe
first,
let's
me
show
me
here,
that's
repo,
so
if
you
look
under
my
name,
there
is
a
reposit
character.
Integration
testing
talk
where
you
have
those
three
examples
available,
so
you
can
download
that
and
you
can
start
playing
with
it.
B
I,
don't
see
any
specific
questions
in
the
chat
in
the
ask
a
question
there
is
also
empty,
so
I
hope,
then,
that
everything
was
clear
for
you.
Thank
you
for
your
attention,
your
your
presence
and
enjoy
the
rest
of
your
day
and
the
rest
of
your
developing
career.
B
A
Thank
you
so
much
Rudy
for
your
excellent
presentation
so
and
there
is
the
information
that
you
can
go
and
look
at
Rudy's
blog
or
the
GitHub
and
I'm
just
going
to
take
a
quick
look
here
at
the
ask
a
questions
tab
to
see.
If
there's
any
questions,
you
do
have
a
couple
of
minutes
to
a
couple
of
seconds
to
enter
any
and
they're
in
the
audience
so
I'm
going
to
check
that
there.
There
is
no
there's,
no
questions
in
there
and
there's
no
questions
in
the
chat
so
yeah.
A
So
just
thank
you
again
for
the
excellent
presentation,
Rudy
and
we're
looking
at
also
to
book
more
Jakarta
Tech
talks
throughout
2023.
So
if
you're
interested
in
presenting
you
can
fill
out
the
form
that
I'm
going
to
put
in
the
actual
chat
and
if
there's
any
feedback
on
the
tech
talk
program,
we
would
love
to
hear
from
you.
So
at
the
end
of
the
webinar,
when
we
close
this
off
just
click
on
the
green
button
that
pops
up
and
let
us
know
how
you
enjoyed
the
talk
so
without
any
further
delay.
A
Thank
you
so
much
again
and
you
have
yourselves
all
a
wonderful
rest
of
your
day
or
evening
wherever
you
are
in
the
world.
Thank
you.
Take
care.