!! This Exam is now online at
JavaBlackbelt.com
OSGi Basic Exam
Target audience
Software Developers with basic java knowledge but no osgi knowledge at all.
Learning Resources
This covers
- basic mantras about OSGi (marketing knowledge)
- basic terminology
- basic bundle behaviour
- OSGi Specification R4 (does not touch 4.1 changes)
This does not cover
- Java ClassLoading principles
- OSGi Service Layer
- OSGi Security Layer
- how to load/use native code
- Fragment/Extension Bundles
- Lazy Activation Policies
- Event/Listeners
- interpreting legacy bundles
- split packages
General (2 questions)
- describe the unit of modularization in osgi
- describe the relationship of osgi bundles to eclipse plugins
- describe what OBR stands for
the manifest ( 3 questions)
- identify the osgi bundle meta data descriptor from a list of jar entries
- detect incorrect bundles from a list of jar entries
- From a selection of manifest headers identify the mandatory ones
- be able to tell the default values for the following headers
- Bundle-Classpath
- Bundle-ManifestVersion
- Bundle-Version
bundle contents (2 question)
- know how bundles are packaged usually (technically speaking)
- identify legal/illegal contents of a bundle
common syntax knowledge ( 2 questions)
- from a list of version-strings identify incorrect ones
- be able to order version-strings
- detect incorrect header syntax
import/export directives (4 questions)
- show how to use the following directives to extend/enable visibility of java packages:
- export-package
- import-package
- private-package
- find missing import-package for a given (small) bundle
- find redundant import-package for a given (small) bundle
- configure a bundle so that it substitutes a package
- avoid using require-bundle header using import-package
- Show how you can make a given importing package optional
Lifecycle Layer: Bundle States (4 questions)
- Show the difference of the following bundle states: INSTALLED, RESOLVED, ACTIVE
- predict the bundle-identifier after a framework restart
- show how you can execute bundle code directly on bundle startup / stop
- identify the system bundle from a list of bundles
- predict the behaviour if the system bundles shuts down
- show the requirements to start a bundle
Basic API (3 questions)
- from a list of interfaces, determine the one that provides the main lifecycle methods for a bundle
- show how can get the system bundleContext reference
- show how you programmatically shutdown the framework
- identify a valid BundleActivator implementation
- predict the bundle state if an uncatched exception is thrown inside Activator.start() or Activator.stop()
- predict the outcome of calling the following lifecycle-methods on the System Bundle:
- start
- stop
- update
- uninstall