Apache Sling - The whys and the hows

3,066 views

Published on

Brief into to Sling presented to the Bucharest JUG, 2nd edition, 22-06-2012

  • Be the first to comment

Apache Sling - The whys and the hows

  1. 1. Apache Sling - The whys and the hows Apache Sling – The whys and the hows OSGi, JCR, REST, BCP Robert Munteanu @rombert rmuntean@adobe.comrmuntean@adobe.com @rombert
  2. 2. Who I am  $DAYJOB  FOSS  Adobe CQ  MantisBT − Apache Sling  Mylyn Connector − Apache Jackrabbit for MantisBT − Apache Felix  Mylyn Connector for Review Boardrmuntean@adobe.com @rombert
  3. 3. Why Sling Bringing back the funrmuntean@adobe.com @rombert
  4. 4. Apache Sling architecturermuntean@adobe.com @rombert
  5. 5. Why Sling (2)  Non-mainstream technology choices  Standard nonetheless  Coherent  Opinionated (TM?)rmuntean@adobe.com @rombert
  6. 6. Why Sling (3)  Content first approach  RESTful access to resources  Polyglot request handling  Java  Javascript  JSP  Ruby  Access control management  Logging ( slf4j )rmuntean@adobe.com @rombert
  7. 7. Why Sling (4)  Apache Top-level project  High-profile Sling adopters  Sakai Project ( sakaiproject.org )  Adobe CQ ( adobe.com/products/cq.html)  Idium Web ( idium.no/web/ )rmuntean@adobe.com @rombert
  8. 8. Why Felix  Sling is a set of OSGi bundles  Builds on support from Apache Felix – Dependency Injection – Eventing – Configuration Admin – Modularityrmuntean@adobe.com @rombert
  9. 9. Why Jackrabbitrmuntean@adobe.com @rombert
  10. 10. Why Jackrabbit (2)rmuntean@adobe.com @rombert
  11. 11. Sling use cases  Blogs, news , bug trackers  Digital asset management  Wikisrmuntean@adobe.com @rombert
  12. 12. And now...rmuntean@adobe.com @rombert
  13. 13. OSGi component @Component @Service(ChaosMonkey.class) public class DrunkChaosMonkey implements ChaosMonkey { @Reference SlingRepository repo; void doWhateverAChaosMonkeyDoes() { … } }rmuntean@adobe.com @rombert
  14. 14. Eventing @Component @Service(EventHandler.class) @Property(name=”event.topics”, value=”some/event/queue”) class LazyHandler implements EventHandler { public void handleEvent(Event event) {…} }rmuntean@adobe.com @rombert
  15. 15. Project layoutrmuntean@adobe.com @rombert
  16. 16. Think in content, not in tables /content/myblog/posts/iphone_shipping/attachments/front.jpg [Blog] [Post] [Attachment] - blogId - postId - attachmentId - author - blogId - postId - title - filename - text + resource (nt:resource) - date In-depth discussion at http://wiki.apache.org/jackrabbit/DavidsModelrmuntean@adobe.com @rombert
  17. 17. Q&Armuntean@adobe.com @rombert
  18. 18. Resources  Apache Sling – http://sling.apache.org  Apache Felix – http://felix.apache.org  Apache Jackrabbit – http://jackrabbit.apache.org  @rombert{,w}rmuntean@adobe.com @rombert

×