e fg e c t i v e w e b a p p l i c a t i o n d e v e l o
play

E fg e c t i v e W e b A p p l i c a t i o n D - PowerPoint PPT Presentation

E fg e c t i v e W e b A p p l i c a t i o n D e v e l o p me n t w i t h A p a c h e S l i n g E fg e c t i v e W e b A p p l i c a t i o n D e v e l o p m e n t w i


  1. E fg e c t i v e W e b A p p l i c a t i o n D e v e l o p me n t w i t h A p a c h e S l i n g E fg e c t i v e W e b A p p l i c a t i o n D e v e l o p m e n t w i t h A p a c h e S l i n g R o b e r t M u n t e a n u A p a c h e C o n C o r e E u r o p e 2 0 1 5 h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  2. W h o I a m  $  F D A Y J O B O S S  A  A d o b e E x p e r i e n c e p a c h e S l i n g M a n a g e r  M a n t i s B T  A  M p a c h e S l i n g y l y n C o n n e c t o r f o r M a n t i s B T  A p a c h e J a c k r a b b i t  M  A y l y n C o n n e c t o r f o r R e v i e w p a c h e F e l i x B o a r d Speaker.currentSpeaker().interrupt(); h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  3. A g e n d a ● Q u i c k f a c t s a n d f i g u r e s ● C o n c e p t u a l f o u n d a t i o n s ● B u i l d i n g b l o c k s ● B u i l d i n g S l i n g a p p l i c a t i o n s h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  4. Q u i c k f a c t s a n d f i g u r e s Q u i c k f a c t s a n d f i g u r e s h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  5. Q u i c k f a c t s a n d f i g u r e s 2 0 0 x 2 0 0 7 2 0 0 9 2 0 1 4 P r e - A p a c h e i n c u b a t i o n T L P V e r s i o n 7 h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  6. H i g h - l e v e l V i e w o f t h e C o d e S o u r c e : O p e n H u b h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  7. L e v e l o f a c t i v i t y S o u r c e : O p e n H u b S o u r c e : s t a t u s . a p a c h e . o r g h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  8. C o mmu n i t y i n v o l v e me n t S o u r c e : M a r k m a i l h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  9. C o n c e p t u a l f o u n d a t i o n s C o n c e p t u a l f o u n d a t i o n s h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  10. C o n c e p t u a l f o u n d a t i o n s O S G i - p o w e r e d R E S T - b a s e d C o n t e n t - d r i v e n S c r i p t i n g i n s i d e A p a c h e h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  11. A p a c h e O p e n S o u r c e P r o j e c t 1 7 4 1 7 F e l i x A r i e s S e r v i c e M i x C o m m o n s 3 6 1 2 G e r o n i m o J a c k r a b b i t D e r b y T i k a h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  12. R E S T - b a s e d / b l o g / { 0 } . h t m l B l o g V i e w C o n t r o l l e r B l o g L i s t C o n t r o l l e r / b l o g / / H o m e C o n t r o l l e r S l i n g M a i n S e r v l e t / / b l o g / b l o g / h e l l o - w o r l d h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  13. C o n t e n t - d r i v e n blog hello-world jcr:content images some-cat.jpg other-cat.jpg h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  14. C o n t e n t - d r i v e n some-cat.jpg - jcr:primaryType = app:asset - jcr:title = Some Cat - jcr:description = A longer description of this picture of a cat - jcr:created = 2014-06-03T00:00:00.000+02:00 - jcr:lastUpdated = 2014-06-03T11:00:00.000+02:00 - tags = [Animal, Cat, Color] - width = 400 - height = 600 h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  15. S c r i p t i n g i n s i d e J S P h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  16. S c r i p t i n g i n s i d e libs blogapp welcome.jsp welcome json.html h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  17. O S G i p o w e r e d ● P r o v i s i o n a n d d e p l o y b u n d l e s ● C o n f i g u r e , r e g i s t e r a n d l o o k u p s e r v i c e s ● E v e n t i n g ● W e b C o n s o l e h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  18. B u i l d i n g b l o c k s B u i l d i n g b l o c k s h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  19. S e r v i n g a r e q u e s t G E T / b l o g / w e l c o m e . h t m l ? ? ? / b l o g / w e l c o m e m y b l o g / b l o g . g r o o v y h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  20. R e s o u r c e T y p e s blog [blogapp/listing] hello-world jcr:content [blogapp/blog/content] images some-cat.jpg other-cat.jpg h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  21. S c r i p t r e s o l u t i o n GET /blog.html Type: blogapp/listing Extension: html Method: GET /libs/blogapp/listing.jsp /libs/blogapp/listing/html.jsp @SlingServlet(resourceTypes=”blogapp/listing”,...) h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  22. R e q u e s t s e l e c t o r s GET /blog.rss.xml Type: blogapp/listing Extension: xml Selector: rss Method: GET /libs/blogapp/listing/rss.html h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  23. R e s o u r c e P r o v i d e r s J C R M o n g o D B / / c o n t e n t / / c o n t e n t / c o m m e n t s / l o g s F S C a s s a n d r a h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  24. J C R h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  25. J C R I mp l e me n t a t i o n s A p a c h e J a c k r a b b i t O a k h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  26. B u i l d i n g S l i n g A p p l i c a t i o n s B u i l d i n g S l i n g A p p l i c a t i o n s h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  27. J C R M o d e l i n g images F i l e u p l o a d some-cat.jpg renditions O b s e r v a t i o n small.jpg ripple.jpg annotations A C L s initial-review h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  28. J C R M o d e l i n g etc rendition ripple - orientation = /etc/rendition/ripple/options ↵ /orientation/vertical - antialiasing = true - edges = /etc/rendition/ripple/options/ ↵ edges/wrap - wave type = /etc/rendition/ripple/options/ ↵ wave_type/simple - period = 20 - amplitude = 5 h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  29. E v e r y t h i n g i s a R e s o u r c e E v e r y t h i n g i s a r e s o u r c e h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  30. R e a d i n g f r o m t h e r e p o s i t o r y @SlingServlet(resourceTypes = "blogapp/listing", extensions = "xml", methods = "GET") public class RSSFeedServlet extends SlingSafeMethodsServlet { @Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { // actual implementation } } h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

  31. R e a d i n g f r o m t h e r e p o s i t o r y Resource res = request.getResource(); ValueMap properties = ↵ res.adaptTo(ValueMap.class); String title = properties.get(“jcr:title”, ↵ “Missing”); Post post = res.adaptTo(Post.class); title = post.getTitle(); h t t p : / / r o b e r t . mu n t e a . n u @r o mb e r t

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend