OSGI 1. Bundles = jar files + Manifest 2. Components = java classes 3. Services = special components used to interact between bundles 4. OSGi is a container in which any bundle can be added at runtime 5. Bundle jar files are dropped in folders called install to add them to CQ Annotations: To add properties @Properties({ @Property(name = "scheduler.expression", value = "*/5 * * * * ?") ,// Every 5 seconds @Property(name = "scheduler.expression.meta", options={ @PropertyOption(name="prop1", value="Option 1"), @PropertyOption(name="prop2", value="Option 2") }), To read properties: componentContext.getProperties().get(“prop-name”).getString(); Sling 1. URL Decomposition – get the contentPath, method and selectors from the URL 2. Content Resolution – identify the content and access the sling:resourceType Property 3. Resource Resolution - /apps or /libs 4. Script Resoluti...