...
Include Page | |||
---|---|---|---|
|
|
...
Wiki Markup |
---|
{html}
<div class="content">
{html} |
...
OSGi
...
and
...
friends
...
methods
...
Developing
...
OSGi
...
tests
...
can
...
be
...
definitely
...
boring.
...
First,
...
testing
...
is
...
generally
...
not
...
a
...
very
...
exciting
...
experience,
...
but
...
imagine
...
if
...
you
...
have
...
to
...
handle
...
all
...
the
...
OSGi
...
issues
...
in
...
your
...
tests...
...
Don't
...
worry
...
junit4osgi
...
provides
...
methods
...
allowing
...
to
...
interact
...
easily
...
with
...
OSGi!
Wiki Markup |
---|
_ {div:class=toc} {toc:maxLevel=4|minLevel=2} {div} h2. |
OSGi
...
methods
...
junit4osgi
...
test
...
case
...
extends
...
the
...
OSGiTestCase
...
class.
...
This
...
class
...
provides
...
useful
...
methods
...
allowing
...
to
...
find
...
services,
...
get
...
them,
...
get
...
the
...
PackageAdmin
...
service...
...
The
...
description
...
of
...
these
...
methods
...
can
...
be
...
found
...
afterward.
...
The
...
most
...
part
...
of
...
the
...
methods
...
are
...
available
...
statically
...
and
...
non-statically.
...
Static
...
methods
...
require
...
a
...
Bundle
...
.
...
Non
...
static
...
methods
...
use
...
the
...
current
...
bundle
...
context,
...
and
...
track
...
get
...
services
...
to
...
release
...
them
...
when
...
the
...
test
...
is
...
done.
...
So,
...
we
...
advise
...
you
...
to
...
use
...
the
...
non-static
...
methods.
...
Static
...
methods
...
just
...
allow
...
you
...
to
...
check
...
that
...
a
...
specific
...
bundle
...
can
...
access
...
to
...
services
...
/
...
resources.
...
Service
...
interaction
...
boolean
...
isServiceAvailable(String
...
svc)
...
- :
...
- returns
...
true
...
- if
...
- the
...
- service
...
svc
...
- is
...
- available.
...
boolean
...
isServiceAvailableByPID(String
...
itf,
...
String
...
pid)
...
- :
...
- return
...
true
...
- if
...
- the
...
- service
...
svc
...
- is
...
- available
...
- and
...
- exposed
...
- with
...
pid
...
- as
...
service.pid
...
- .
ServiceReference getServiceReference(String
...
itf)
...
- :
...
- returns
...
- a
...
- service
...
- reference
...
- exposing
...
- the
...
itf
...
- service
...
- specification,
...
- or
...
null
...
- if
...
- not
...
- available.
...
ServiceReference
...
getServiceReference(String
...
itf,
...
String
...
filter)
...
- :
...
- returns
...
- a
...
- service
...
- reference
...
- matching
...
- with
...
- the
...
- \<service
...
- interface,
...
- filter\>
...
- request,
...
- or
...
null
...
- is
...
- not
...
- available.
...
ServiceReference
...
getServiceReferenceByPID(String
...
itf,
...
String
...
pid)
...
- :
...
- returns
...
- a
...
- service
...
- reference
...
- exposing
...
- the
...
- service
...
itf
...
- and
...
- exposed
...
- with
...
- a
...
service.pid
...
- equals
...
- to
...
pid
...
- ,
...
- or
...
null
...
- if
...
- not
...
- available.
...
ServiceReference[]
...
getServiceReferences(String
...
itf,
...
String
...
filter)
...
- :
...
- returns
...
- all
...
- the
...
- service
...
- references
...
- matching
...
- with
...
- the
...
- \<service
...
- interface,
...
- filter\>
...
- request,
...
- or
...
- an
...
- empty
...
- array
...
- is
...
- not
...
- available.
...
Object getServiceObject(String
...
itf,
...
String
...
filter)
...
- :
...
- returns
...
- a
...
- service
...
- object
...
- matching
...
- with
...
- the
...
- \<service
...
- interface,
...
- filter\>
...
- request
...
- or
...
null
...
- is
...
- not
...
- available.
...
Object
...
getServiceObject(ServiceReference
...
ref)
...
- :
...
- returns
...
- the
...
- service
...
- object
...
- associated
...
- with
...
- the
...
- given
...
service
...
reference
...
- or
...
null
...
- if
...
- not
...
- available.
...
Object[]
...
getServiceObjects(String
...
itf,
...
String
...
filter)
...
- :
...
- gets
...
- all
...
- the
...
- service
...
- objects
...
- matching
...
- with
...
- the
...
- \<service
...
- interface,
...
- filter\>
...
- request
...
- or
...
- an
...
- empty
...
- array
...
- is
...
- no
...
- providers
...
- are
...
- available.
...
void waitForService(String
...
itf,
...
String
...
filter,
...
long
...
timeout)
...
- :
...
- waits
...
- for
...
- a
...
- service
...
- arrival
...
- matching
...
- with
...
- the
...
- \<service
...
- interface,
...
- filter\>
...
- request.
...
- If
...
- the
...
- timeout
...
- expires,
...
- this
...
- method
...
- fails.
...
Get the bundle context
BundleContext getContext()
...
- :
...
- gives
...
- access
...
- to
...
- the
...
- OSGiTestCase
...
- bundle
...
- context.
...
Install/Start/Uninstall
...
bundles
...
Bundle
...
installBundle(String
...
url)
...
- :
...
- installs
...
- a
...
- bundle
...
- from
...
- the
...
- given
...
- url.
...
- This
...
- method
...
- fails
...
- if
...
- the
...
- bundle
...
- cannot
...
- be
...
- installed.
...
Bundle
...
installBundle(String
...
url,
...
InputStream
...
stream)
...
- :
...
- installs
...
- a
...
- bundle
...
- from
...
- the
...
- given
...
- input
...
- stream.
...
- This
...
- methods
...
- fails
...
- if
...
- the
...
- bundle
...
- cannot
...
- be
...
- installed.
...
Bundle
...
installAndStart(String
...
url)
...
- :
...
- installs
...
- a
...
- bundle
...
- from
...
- the
...
- given
...
- url
...
- and
...
- starts
...
- it.
...
- This
...
- methods
...
- fails
...
- if
...
- the
...
- bundle
...
- cannot
...
- be
...
- installed
...
- and
...
- started
...
- correctly.
...
Bundle
...
installAndStart(String
...
url,
...
InputStream
...
stream)
...
- :
...
- installs
...
- a
...
- bundle
...
- from
...
- the
...
- given
...
- input
...
- stream
...
- and
...
- starts
...
- it.
...
- This
...
- methods
...
- fails
...
- if
...
- the
...
- bundle
...
- cannot
...
- be
...
- installed
...
- and
...
- started
...
- correctly.
...
Bundle
...
getBundle(long
...
bundleId)
...
- :
...
- gets
...
- an
...
- installed
...
- bundle
...
- by
...
- its
...
- bundle
...
- id,
...
- or
...
null
...
- if
...
- not
...
- found.
...
Bundle
...
getBundle(String
...
name)
...
- :
...
- gets
...
- an
...
- installed
...
- bundle
...
- by
...
- its
...
- symbolic
...
- name.
...
- Fails
...
- if
...
- not
...
- found.
...
PackageAdmin
PackageAdmin getPackageAdmin()
...
- :
...
- gives
...
- access
...
- to
...
- the
...
Package
...
Admin
...
- service
...
- exposed
...
- by
...
- the
...
- framework.
...
refresh()
...
- :
...
- refresh
...
- package
...
- wires.
...
Extensibility:
...
Helper
...
objects
...
junit4osgi
...
provides
...
an
...
extensibility
...
mechanism
...
to
...
reduce
...
the
...
pain
...
of
...
testing.
...
So,
...
if
...
you're
...
interacting
...
with
...
specific
...
services
...
or
...
environment,
...
you
...
can
...
use
...
Helper
...
objects.
...
Those
...
object
...
have
...
to
...
be
...
created
...
in
...
the
...
setUp
...
method
...
and
...
disposed
...
in
...
the
...
tearDown
...
method.
...
So,
...
for
...
example,
...
if
...
you
...
write
...
iPOJO
...
tests,
...
you
...
can
...
use
...
the
...
iPOJO
...
helper
...
providing
...
a
...
lot
...
of
...
utility
...
functions
...
simplifying
...
the
...
development
...
of
...
tests.
Code Block | ||||
---|---|---|---|---|
| ||||
{code:java} public class MyTest extends OSGiTestCase { ComponentInstance fooProvider1, fooProvider2; IPOJOHelper helper; // Helper object public void setUp() { helper = new IPOJOHelper(this); // Create the object. String type2 = "PS-FooProviderType"; fooProvider1 = helper.createComponentInstance(type2, p3); fooProvider2 = helper.createComponentInstance(type2, "FooProvider-4"); } public void tearDown() { helper.dispose(); // Dispose it, instances will be disposed too. } {code} |
You
...
can
...
also
...
implements
...
your
...
own
...
helper
...
(for
...
specific
...
purpose)
...
by
...
just
...
implementing
...
the
...
Helper
...
interface.
...
Include Page | ||||
---|---|---|---|---|
|
...