<rdf:RDF
    xmlns:s='http://snipsnap.org/rdf/snip-schema#'
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xml:base='http://nutritioussoftware.org/rdf'>
    <s:Snip rdf:about='http://nutritioussoftware.org/rdf#javablackbelt/osgiBasicExam'
         s:name='javablackbelt/osgiBasicExam'
         s:cUser='tonit'
         s:oUser='tonit'
         s:mUser='tonit'>
        <s:content>__!! This Exam is now online at__{link:JavaBlackbelt.com|http://javablackbelt.com/QuestionnaireDefDisplay.wwa?questPublicId=01609}&#xD;&#xA;\\&#xD;&#xA;\\&#xD;&#xA;__OSGi Basic Exam__ \\&#xD;&#xA;&#xD;&#xA;1 Target audience&#xD;&#xA;Software Developers with basic java knowledge but no osgi knowledge at all.&#xD;&#xA;&#xD;&#xA;1 Learning Resources&#xD;&#xA;- {link:A very good tutorial by Neil Bartlett|http://neilbartlett.name/blog/osgi-articles/}&#xD;&#xA;- {link:Small snippets who just cover a particular aspect by Peter Kriens|http://www.aqute.biz/Snippets/HomePage}&#xD;&#xA;- {link:OSGi Tutorial|http://www.aqute.biz/OSGi/Tutorial}&#xD;&#xA;&#xD;&#xA;1 This covers &#xD;&#xA;- basic mantras about OSGi (marketing knowledge)&#xD;&#xA;- basic terminology&#xD;&#xA;- basic bundle behaviour&#xD;&#xA;- OSGi Specification R4 (does not touch 4.1 changes)&#xD;&#xA;&#xD;&#xA;1 This does not cover&#xD;&#xA;- Java ClassLoading principles&#xD;&#xA;- OSGi Service Layer&#xD;&#xA;- OSGi Security Layer&#xD;&#xA;- how to load/use native code&#xD;&#xA;- Fragment/Extension Bundles&#xD;&#xA;- Lazy Activation Policies&#xD;&#xA;- Event/Listeners&#xD;&#xA;- interpreting legacy bundles&#xD;&#xA;- split packages&#xD;&#xA;&#xD;&#xA;----&#xD;&#xA;&#xD;&#xA;1 General (2 questions)&#xD;&#xA;- describe the unit of modularization in osgi&#xD;&#xA;- describe the relationship of osgi bundles to eclipse plugins&#xD;&#xA;- describe what OBR stands for&#xD;&#xA;&#xD;&#xA;1 the manifest ( 3 questions)&#xD;&#xA;- identify the osgi bundle meta data descriptor from a list of jar entries&#xD;&#xA;- detect incorrect bundles from a list of jar entries&#xD;&#xA;- From a selection of manifest headers identify the mandatory ones&#xD;&#xA;- be able to tell the default values for the following headers&#xD;&#xA;-- Bundle-Classpath&#xD;&#xA;-- Bundle-ManifestVersion&#xD;&#xA;-- Bundle-Version&#xD;&#xA;&#xD;&#xA;1 bundle contents (2 question)&#xD;&#xA;- know how bundles are packaged usually (technically speaking)&#xD;&#xA;- identify legal/illegal contents of a bundle&#xD;&#xA;&#xD;&#xA;1 common syntax knowledge ( 2 questions)&#xD;&#xA;- from a list of version-strings identify incorrect ones&#xD;&#xA;- be able to order version-strings&#xD;&#xA;- detect incorrect header syntax&#xD;&#xA;&#xD;&#xA;1 import/export directives (4 questions)&#xD;&#xA;- show how to use the following directives to extend/enable visibility of java packages:&#xD;&#xA;-- export-package&#xD;&#xA;-- import-package&#xD;&#xA;-- private-package&#xD;&#xA;- find missing import-package for a given (small) bundle&#xD;&#xA;- find redundant import-package for a given (small) bundle&#xD;&#xA;- configure a bundle so that it substitutes a package&#xD;&#xA;- avoid using require-bundle header using import-package&#xD;&#xA;- Show how you can make a given importing package optional&#xD;&#xA;&#xD;&#xA;1 Lifecycle Layer: Bundle States (4 questions)&#xD;&#xA;- Show the difference of the following bundle states: INSTALLED, RESOLVED, ACTIVE&#xD;&#xA;- predict the bundle-identifier after a framework restart&#xD;&#xA;- show how you can execute bundle code directly on bundle startup / stop&#xD;&#xA;- identify the system bundle from a list of bundles&#xD;&#xA;- predict the behaviour if the system bundles shuts down&#xD;&#xA;- show the requirements to start a bundle&#xD;&#xA;&#xD;&#xA;1 Basic API (3 questions)&#xD;&#xA;- from a list of interfaces, determine the one that provides the main lifecycle methods for a bundle&#xD;&#xA;- show how can get the system bundleContext reference&#xD;&#xA;- show how you programmatically shutdown the framework&#xD;&#xA;- identify a valid BundleActivator implementation&#xD;&#xA;- predict the bundle state if an uncatched exception is thrown inside Activator.start() or Activator.stop()&#xD;&#xA;- predict the outcome of calling the following lifecycle-methods on the System Bundle:&#xD;&#xA;-- start&#xD;&#xA;-- stop&#xD;&#xA;-- update&#xD;&#xA;-- uninstall</s:content>
        <s:mTime>2008-01-26 15:47:49.514</s:mTime>
        <s:cTime>2008-01-13 11:15:21.815</s:cTime>
        <s:comments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <s:snipLinks>
            <rdf:Bag>
                <rdf:li rdf:resource='#javablackbelt'/>
                <rdf:li rdf:resource='http://nutritioussoftware.org/rdf#start/2008-01-12/1'/>
                <rdf:li rdf:resource='#About'/>
                <rdf:li rdf:resource='http://nutritioussoftware.org/rdf#SnipSnap/config'/>
                <rdf:li rdf:resource='#about'/>
                <rdf:li rdf:resource='#Toni'/>
                <rdf:li rdf:resource='#snipsnap-index'/>
                <rdf:li rdf:resource='#snipsnap-portlet-1'/>
            </rdf:Bag>
        </s:snipLinks>
        <s:attachments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <rdf:type>Process</rdf:type>
    </s:Snip>
</rdf:RDF>
