SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Blossom on the Web
                Spring and Content Management

           Tobias Mattsson, Senior Software   07.03.2014 at Magnolia Amplify
           Engineer




                                                 Magnolia is a registered trademark owned by Magnolia
       1     Version 1.1
                                                                                      International Ltd.

Thursday, 7 March 2013
Spring Framework

                           Spring is a java based application framework
                            • Focus on web applications and enterprise
                              applications
                            • One of the most popular frameworks in the Java
                              space
                           Pioneered a broad feature set
                            • Lightweight container
                            • Dependency Injection (DI)
                            • Aspect Oriented Programming (AOP)
                            • Enterprise Service Abstraction


                                                           Magnolia is a registered trademark owned by Magnolia
       2     Version 1.1
                                                                                                International Ltd.

Thursday, 7 March 2013
Spring is everywhere

                           2.5 million developers use Spring (two thirds!)
                           More than half of the Fortune 500 power their Java
                           applications with Spring
                           More than 70 percent of enterprises cite improved
                           productivity, faster project completion, improved
                           portability and application quality as reasons for
                           using Spring




                                                          Magnolia is a registered trademark owned by Magnolia
       3     Version 1.1
                                                                                               International Ltd.

Thursday, 7 March 2013
Spring projects

                           Spring Web MVC
                           Spring WebFlow
                           Spring Security
                           Spring WebServices
                           Spring Social
                             • Twitter, Facebook, LinkedIn etc

                           Spring Data
                             • MongoDB, Neo4j, Riak, Cassandra etc




                                                           Magnolia is a registered trademark owned by Magnolia
       4     Version 1.1
                                                                                                International Ltd.

Thursday, 7 March 2013
Spring and the CMS




                                        Magnolia is a registered trademark owned by Magnolia
       5     Version 1.1
                                                                             International Ltd.

Thursday, 7 March 2013
Blossom integrates it for you

                           Integrates Spring into the Magnolia module
                           mechanism
                            • Module Lifecycle

                           Extends Spring Web MVC for templating
                           And additional bridging




                                                         Magnolia is a registered trademark owned by Magnolia
       6     Version 1.1
                                                                                              International Ltd.

Thursday, 7 March 2013
Spring Web MVC with Content

                           No configuration just code
                           Based on annotations
                           Non-intrusive
                           Spring centric approach
                            • The controller is the template
                            • The controller is the component
                            • and they’re automatically available in Magnolia




                                                           Magnolia is a registered trademark owned by Magnolia
       7     Version 1.1
                                                                                                International Ltd.

Thursday, 7 March 2013
Spring Web MVC


                  @Controller
                  public class ExampleController {

                           @RequestMapping("/customers/list")
                           public String render(ModelMap model) {
                               model.put("title", "List of all customers");
                               model.put("customers", customerService.findAllCustomers());
                               return "customers/list";
                           }
                  }




                                                                        Magnolia is a registered trademark owned by Magnolia
       8     Version 1.1
                                                                                                             International Ltd.

Thursday, 7 March 2013
Templates


                  @Controller
                  @Template(title = "Main template", id = "blossomSample:pages/main")
                  public class MainTemplate {

                           @RequestMapping("/mainTemplate")
                           public String render(Node page, ModelMap model) {
                               return "pages/main.ftl";
                           }
                  }




                                                                         Magnolia is a registered trademark owned by Magnolia
       9     Version 1.1
                                                                                                              International Ltd.

Thursday, 7 March 2013
Areas


                  @Controller
                  @Template(title = "Main template", id = "blossomSample:pages/main")
                  public class MainTemplate {

                         @Controller
                         @Area("main")
                         public static class MainArea {

                               @RequestMapping("/mainTemplate/main")
                               public String render() {
                                   return "areas/mainArea.ftl";
                               }
                         }

                         ...
                  }




                                                                          Magnolia is a registered trademark owned by Magnolia
      10     Version 1.1
                                                                                                               International Ltd.

Thursday, 7 March 2013
Components

           @Controller
           @Template(title = "Shopping Cart", id = "blossomSample:components/shoppingCart")
           @TemplateDescription("Shopping cart")
           public class ShoppingCartComponent {

                  @RequestMapping("/shoppingCart")
                  public String handleRequest() {
                      ...
                      return "components/shoppingCart.ftl";
                  }

                  ...
           }




                                                                 Magnolia is a registered trademark owned by Magnolia
      11       Version 1.1
                                                                                                      International Ltd.

Thursday, 7 March 2013
Specifying what goes into an area

             @Controller
             @Area("promos")
             @AvailableComponentClasses({TextComponent.class, ShoppingCartComponent.class})
             public static class PromosArea {

                     @RequestMapping("/mainTemplate/promos")
                     public String render() {
                         return "areas/promosArea.ftl";
                     }

             }




                                                                 Magnolia is a registered trademark owned by Magnolia
      12     Version 1.1
                                                                                                      International Ltd.

Thursday, 7 March 2013
Inheritance

             @Controller
             @Area("promos")
             @Inherits
             @AvailableComponentClasses({TextComponent.class, ShoppingCartComponent.class})
             public static class PromosArea {

                     @RequestMapping("/mainTemplate/promos")
                     public String render() {
                         return "areas/promos.jsp";
                     }
             }




                                                                 Magnolia is a registered trademark owned by Magnolia
      13     Version 1.1
                                                                                                      International Ltd.

Thursday, 7 March 2013
Dialogs

                           Dialogs are created using code, not configuration
                           Based on annotations
                           Dynamic behavior
                           Validation of dialog input
                           Detected and automatically available in Magnolia




                                                         Magnolia is a registered trademark owned by Magnolia
      14     Version 1.1
                                                                                              International Ltd.

Thursday, 7 March 2013
Dialog factories

              @DialogFactory("page-dialog")
              public class PageDialog {

                     @TabFactory("Content")
                     public void contentTab(TabBuilder tab) {
                         tab.addEdit("title", "Title", "Title of this page");
                         tab.addCheckbox("navigation", "Navigation", "Include page in menu");
                     }

                     @TabFactory("Meta")
                     public void metaTab(TabBuilder tab) {
                         tab.addEdit("author", "Author", "");
                         tab.addEdit("keywords", "Keywords", "Keywords for this page");
                         tab.addEdit("description", "Description", "Concise page explanation");
                     }
              }




                                                                    Magnolia is a registered trademark owned by Magnolia
      15     Version 1.1
                                                                                                         International Ltd.

Thursday, 7 March 2013
Dialog inheritance
            public abstract class BaseDialog {
                @TabFactory("Meta")
                public void metaTab(TabBuilder tab) {
                    tab.addEdit("keywords", "Keywords", "Keywords for this page");
                    tab.addEdit("description", "Description", "Concise page explanation");
                }
            }

            @DialogFactory("news-properties")
            @TabOrder("Content", “Meta”)
            public class NewsPageDialog extends BaseDialog {
                @TabFactory("Content")
                public void contentTab(TabBuilder tab) {
                    tab.addEdit("subject", "Subject", "News subject");
                    tab.addDate("date", "Publication Date", "Date of publication");
                    tab.addFckEditor("text", "Text", "");
                    tab.addFile("image", "Image", "");
                }
            }




                                                                Magnolia is a registered trademark owned by Magnolia
      16     Version 1.1
                                                                                                     International Ltd.

Thursday, 7 March 2013
Inline dialogs

                  @Controller
                  @Template(title = "Main template", id = "blossomSample:pages/main")
                  public class MainTemplate {

                           @RequestMapping("/mainTemplate")
                           public String render(Node page, ModelMap model) {
                               return "pages/main.ftl";
                           }

                           @TabFactory("Content")
                           public void propertiesDialog(TabBuilder tab) {
                               tab.addEdit("title", "Title", "");
                           }
                  }




                                                                            Magnolia is a registered trademark owned by Magnolia
      17     Version 1.1
                                                                                                                 International Ltd.

Thursday, 7 March 2013
Inline dialogs

                  @Controller
                  @Template(title = "Main template", id = "blossomSample:pages/main")
                  public class MainTemplate {

                         @Controller
                         @Area("main")
                         public static class MainArea {

                               @TabFactory("Content")
                               public void contentTab(TabBuilder tab) {
                                   tab.addEdit("borderWidth", "Border width",
                                               "Width of the border around the area");
                               }

                               @RequestMapping("/mainTemplate/main")
                               public String render() {
                                   return "areas/mainArea.ftl";
                               }
                         }

                         ...
                  }




                                                                               Magnolia is a registered trademark owned by Magnolia
      18     Version 1.1
                                                                                                                    International Ltd.

Thursday, 7 March 2013
Dynamic dialogs

           @Controller
           @Template(id="blossomSample:components/book", title="Book")
           public class BookComponent {

                  @Inject
                  private BookStoreWebService webService;

                  @TabFactory("Content")
                  public void contentTab(TabBuilder tab) {
                      tab.addSelect("id", "Book", "Select the book", webService.getBooks());
                  }

                  @RequestMapping("/book")
                  public String handleRequest(ModelMap model, Node content) {
                      String bookId = content.getProperty("id").getString();
                      model.put("book", webService.getBook(bookId));
                      return "components/book.ftl";
                  }
           }



                                                                    Magnolia is a registered trademark owned by Magnolia
      19       Version 1.1
                                                                                                         International Ltd.

Thursday, 7 March 2013
Validation

                @DialogFactory("page-properties")
                public class PagePropertiesDialog {

                         @TabFactory("Meta")
                         public void metaTab(TabBuilder tab) {
                             tab.addEdit("description", "Description", "A concise page explanation");
                         }

                         @TabValidator("Meta")
                         public void validateMetaTab(DialogTab tab) {
                             if (tab.getSub("description").getValue().length() < 20)
                                 AlertUtil.setMessage("Meta description needs to be longer");
                         }
                }




                                                                        Magnolia is a registered trademark owned by Magnolia
      20     Version 1.1
                                                                                                             International Ltd.

Thursday, 7 March 2013
Pre-execution

                           Portal like semantics
                           Allows a component to fully process a request
                           Developers can implement backing logic entirely in
                           the components




                                                         Magnolia is a registered trademark owned by Magnolia
      21     Version 1.1
                                                                                              International Ltd.

Thursday, 7 March 2013
View technologies

                           Best of both worlds approach
                           Magnolia and Spring constructs work side by side
                           Built-in support for Freemarker and JSP
                           Everything Spring supports work out-of-the-box,
                           such as JSON, PDF, XML and RSS




                                                          Magnolia is a registered trademark owned by Magnolia
      22     Version 1.1
                                                                                               International Ltd.

Thursday, 7 March 2013
Blossom in the wild




                                        Magnolia is a registered trademark owned by Magnolia
      23     Version 1.1
                                                                             International Ltd.

Thursday, 7 March 2013
Maglev - Magnolia and Grails

                           Brings Magnolia to the Grails platform
                           Development entirely in groovy and GSP
                           Grails productivity
                           Builds on Blossom




                                                          Magnolia is a registered trademark owned by Magnolia
      24     Version 1.1
                                                                                               International Ltd.

Thursday, 7 March 2013
Summary

                           Enables access to Spring features and technologies
                            • Directly in templates, components and dialogs

                           Spring centric approach on templating
                            • Based on annotations
                            • Connects the CMS with Spring Web MVC

                           Code over configuration
                            • Versioning
                            • Collaboration




                                                          Magnolia is a registered trademark owned by Magnolia
      25     Version 1.1
                                                                                               International Ltd.

Thursday, 7 March 2013
Questions?




                                    Magnolia is a registered trademark owned by Magnolia
      26     Version 1.1
                                                                         International Ltd.

Thursday, 7 March 2013
Thanks for listening!

           Tobias Mattsson, Senior Software        07.03.2013 at Magnolia Amplify
           Engineer                           tobias.mattsson@magnolia-cms.com
           Magnolia International Ltd.




                             www.magnolia-cms.com

                                                     Magnolia is a registered trademark owned by Magnolia
      27     Version 1.1
                                                                                          International Ltd.

Thursday, 7 March 2013

Más contenido relacionado

Destacado

HCIR Authority Facets
HCIR Authority FacetsHCIR Authority Facets
HCIR Authority Facetspgusbell
 
portugal slide show
portugal slide showportugal slide show
portugal slide showklynnhouse
 
Scaling Agile Across the Enterprise
Scaling Agile Across the EnterpriseScaling Agile Across the Enterprise
Scaling Agile Across the EnterpriseArmond Mehrabian
 
Abstract PhD Dissertation - Social Entrepreneurship
Abstract PhD Dissertation - Social EntrepreneurshipAbstract PhD Dissertation - Social Entrepreneurship
Abstract PhD Dissertation - Social Entrepreneurshipanais iglesias
 
portugal slide show
portugal slide showportugal slide show
portugal slide showklynnhouse
 
La revolució educativa de les TIC
La revolució educativa de les TICLa revolució educativa de les TIC
La revolució educativa de les TICjovesteb
 
Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013bkraft
 
Pre Listing Package Power Point Presentation
Pre Listing Package Power Point PresentationPre Listing Package Power Point Presentation
Pre Listing Package Power Point PresentationJo Soss
 
Magnolia Conference 2013: Keynote
Magnolia Conference 2013: KeynoteMagnolia Conference 2013: Keynote
Magnolia Conference 2013: Keynotebkraft
 

Destacado (12)

Susanj - Hotel Talas
Susanj - Hotel TalasSusanj - Hotel Talas
Susanj - Hotel Talas
 
HCIR Authority Facets
HCIR Authority FacetsHCIR Authority Facets
HCIR Authority Facets
 
Budva - Crna Gora
Budva  - Crna GoraBudva  - Crna Gora
Budva - Crna Gora
 
Lefkada
LefkadaLefkada
Lefkada
 
portugal slide show
portugal slide showportugal slide show
portugal slide show
 
Scaling Agile Across the Enterprise
Scaling Agile Across the EnterpriseScaling Agile Across the Enterprise
Scaling Agile Across the Enterprise
 
Abstract PhD Dissertation - Social Entrepreneurship
Abstract PhD Dissertation - Social EntrepreneurshipAbstract PhD Dissertation - Social Entrepreneurship
Abstract PhD Dissertation - Social Entrepreneurship
 
portugal slide show
portugal slide showportugal slide show
portugal slide show
 
La revolució educativa de les TIC
La revolució educativa de les TICLa revolució educativa de les TIC
La revolució educativa de les TIC
 
Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013
 
Pre Listing Package Power Point Presentation
Pre Listing Package Power Point PresentationPre Listing Package Power Point Presentation
Pre Listing Package Power Point Presentation
 
Magnolia Conference 2013: Keynote
Magnolia Conference 2013: KeynoteMagnolia Conference 2013: Keynote
Magnolia Conference 2013: Keynote
 

Similar a Blossom on the web

Single sourcing desktop and mobile websites
Single sourcing desktop and mobile websitesSingle sourcing desktop and mobile websites
Single sourcing desktop and mobile websitesbkraft
 
Magnolia 5 Magnolia Conference 2012 Keynote
Magnolia 5 Magnolia Conference 2012 KeynoteMagnolia 5 Magnolia Conference 2012 Keynote
Magnolia 5 Magnolia Conference 2012 Keynotebkraft
 
Integration possibilities with Magnolia CMS
Integration possibilities with Magnolia CMSIntegration possibilities with Magnolia CMS
Integration possibilities with Magnolia CMShpesojg
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.jsPragnesh Vaghela
 
Spring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionSpring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionTomcy John
 
Building Scalable JavaScript Apps
Building Scalable JavaScript AppsBuilding Scalable JavaScript Apps
Building Scalable JavaScript AppsGil Fink
 
An overview of Scalable Web Application Front-end
An overview of Scalable Web Application Front-endAn overview of Scalable Web Application Front-end
An overview of Scalable Web Application Front-endSaeid Zebardast
 
Webinar 4.5-features-partners
Webinar 4.5-features-partnersWebinar 4.5-features-partners
Webinar 4.5-features-partnersbkraft
 
Building Next-Gen Web Applications with the Spring 3 Web Stack
Building Next-Gen Web Applications with the Spring 3 Web StackBuilding Next-Gen Web Applications with the Spring 3 Web Stack
Building Next-Gen Web Applications with the Spring 3 Web StackJeremy Grelle
 
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...Aditya Jha
 
Java concurrecny
Java concurrecnyJava concurrecny
Java concurrecnynadeembtech
 
Introduction to Drupal for Absolute Beginners
Introduction to Drupal for Absolute BeginnersIntroduction to Drupal for Absolute Beginners
Introduction to Drupal for Absolute Beginnerseverlearner
 
Magnolia CMS 5.0 - Architecture
Magnolia CMS 5.0 - ArchitectureMagnolia CMS 5.0 - Architecture
Magnolia CMS 5.0 - ArchitecturePhilipp Bärfuss
 
The spring 32 update final
The spring 32 update finalThe spring 32 update final
The spring 32 update finalJoshua Long
 
X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101pdhannan
 
20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
20090410   J Spring Pragmatic Model Driven Development In Java Using Smart20090410   J Spring Pragmatic Model Driven Development In Java Using Smart
20090410 J Spring Pragmatic Model Driven Development In Java Using SmartSander Hoogendoorn
 

Similar a Blossom on the web (20)

Single sourcing desktop and mobile websites
Single sourcing desktop and mobile websitesSingle sourcing desktop and mobile websites
Single sourcing desktop and mobile websites
 
ModeShape and Magnolia
ModeShape and MagnoliaModeShape and Magnolia
ModeShape and Magnolia
 
Magnolia 5 Magnolia Conference 2012 Keynote
Magnolia 5 Magnolia Conference 2012 KeynoteMagnolia 5 Magnolia Conference 2012 Keynote
Magnolia 5 Magnolia Conference 2012 Keynote
 
Integration possibilities with Magnolia CMS
Integration possibilities with Magnolia CMSIntegration possibilities with Magnolia CMS
Integration possibilities with Magnolia CMS
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.js
 
Spring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionSpring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – Introduction
 
Building Scalable JavaScript Apps
Building Scalable JavaScript AppsBuilding Scalable JavaScript Apps
Building Scalable JavaScript Apps
 
Workflow in Magnolia5
Workflow in Magnolia5Workflow in Magnolia5
Workflow in Magnolia5
 
An overview of Scalable Web Application Front-end
An overview of Scalable Web Application Front-endAn overview of Scalable Web Application Front-end
An overview of Scalable Web Application Front-end
 
Codejam
CodejamCodejam
Codejam
 
Javawug Codejam
Javawug CodejamJavawug Codejam
Javawug Codejam
 
Webinar 4.5-features-partners
Webinar 4.5-features-partnersWebinar 4.5-features-partners
Webinar 4.5-features-partners
 
Building Next-Gen Web Applications with the Spring 3 Web Stack
Building Next-Gen Web Applications with the Spring 3 Web StackBuilding Next-Gen Web Applications with the Spring 3 Web Stack
Building Next-Gen Web Applications with the Spring 3 Web Stack
 
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...
 
Java concurrecny
Java concurrecnyJava concurrecny
Java concurrecny
 
Introduction to Drupal for Absolute Beginners
Introduction to Drupal for Absolute BeginnersIntroduction to Drupal for Absolute Beginners
Introduction to Drupal for Absolute Beginners
 
Magnolia CMS 5.0 - Architecture
Magnolia CMS 5.0 - ArchitectureMagnolia CMS 5.0 - Architecture
Magnolia CMS 5.0 - Architecture
 
The spring 32 update final
The spring 32 update finalThe spring 32 update final
The spring 32 update final
 
X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101
 
20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
20090410   J Spring Pragmatic Model Driven Development In Java Using Smart20090410   J Spring Pragmatic Model Driven Development In Java Using Smart
20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
 

Más de bkraft

The Open Suite Approach: How to ride the shock waves of a changing web
The Open Suite Approach: How to ride the shock waves of a changing webThe Open Suite Approach: How to ride the shock waves of a changing web
The Open Suite Approach: How to ride the shock waves of a changing webbkraft
 
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...bkraft
 
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5bkraft
 
Webinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For ITWebinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For ITbkraft
 
Increase Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop ModuleIncrease Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop Modulebkraft
 
High performance and scalability
High performance and scalability High performance and scalability
High performance and scalability bkraft
 
Multilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pagesMultilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pagesbkraft
 
Work life balance
Work life balanceWork life balance
Work life balancebkraft
 
Magnolia and PHPCR
Magnolia and PHPCRMagnolia and PHPCR
Magnolia and PHPCRbkraft
 
Solr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of MagnoliaSolr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of Magnoliabkraft
 
End to end content managed online mobile banking
End to end content managed online mobile bankingEnd to end content managed online mobile banking
End to end content managed online mobile bankingbkraft
 
MBC Group - Magnolia in the Media
MBC Group - Magnolia in the MediaMBC Group - Magnolia in the Media
MBC Group - Magnolia in the Mediabkraft
 
Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris bkraft
 
Bridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured SoftwareBridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured Softwarebkraft
 
User Management and SSO for Austrian Government
User Management and SSO for Austrian GovernmentUser Management and SSO for Austrian Government
User Management and SSO for Austrian Governmentbkraft
 
Enterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's ImagingEnterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's Imagingbkraft
 
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design ProcessHow the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Processbkraft
 
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest RetailerMigros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailerbkraft
 
How AngryNerds Convinced Atlassian to Use Magnolia
How AngryNerds Convinced Atlassian to Use MagnoliaHow AngryNerds Convinced Atlassian to Use Magnolia
How AngryNerds Convinced Atlassian to Use Magnoliabkraft
 
Core capabilities of wcm - magnolia
Core capabilities of wcm -  magnoliaCore capabilities of wcm -  magnolia
Core capabilities of wcm - magnoliabkraft
 

Más de bkraft (20)

The Open Suite Approach: How to ride the shock waves of a changing web
The Open Suite Approach: How to ride the shock waves of a changing webThe Open Suite Approach: How to ride the shock waves of a changing web
The Open Suite Approach: How to ride the shock waves of a changing web
 
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
 
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
 
Webinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For ITWebinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For IT
 
Increase Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop ModuleIncrease Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop Module
 
High performance and scalability
High performance and scalability High performance and scalability
High performance and scalability
 
Multilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pagesMultilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pages
 
Work life balance
Work life balanceWork life balance
Work life balance
 
Magnolia and PHPCR
Magnolia and PHPCRMagnolia and PHPCR
Magnolia and PHPCR
 
Solr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of MagnoliaSolr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of Magnolia
 
End to end content managed online mobile banking
End to end content managed online mobile bankingEnd to end content managed online mobile banking
End to end content managed online mobile banking
 
MBC Group - Magnolia in the Media
MBC Group - Magnolia in the MediaMBC Group - Magnolia in the Media
MBC Group - Magnolia in the Media
 
Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris
 
Bridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured SoftwareBridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured Software
 
User Management and SSO for Austrian Government
User Management and SSO for Austrian GovernmentUser Management and SSO for Austrian Government
User Management and SSO for Austrian Government
 
Enterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's ImagingEnterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's Imaging
 
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design ProcessHow the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
 
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest RetailerMigros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
 
How AngryNerds Convinced Atlassian to Use Magnolia
How AngryNerds Convinced Atlassian to Use MagnoliaHow AngryNerds Convinced Atlassian to Use Magnolia
How AngryNerds Convinced Atlassian to Use Magnolia
 
Core capabilities of wcm - magnolia
Core capabilities of wcm -  magnoliaCore capabilities of wcm -  magnolia
Core capabilities of wcm - magnolia
 

Último

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 

Último (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 

Blossom on the web

  • 1. Blossom on the Web Spring and Content Management Tobias Mattsson, Senior Software 07.03.2014 at Magnolia Amplify Engineer Magnolia is a registered trademark owned by Magnolia 1 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 2. Spring Framework Spring is a java based application framework • Focus on web applications and enterprise applications • One of the most popular frameworks in the Java space Pioneered a broad feature set • Lightweight container • Dependency Injection (DI) • Aspect Oriented Programming (AOP) • Enterprise Service Abstraction Magnolia is a registered trademark owned by Magnolia 2 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 3. Spring is everywhere 2.5 million developers use Spring (two thirds!) More than half of the Fortune 500 power their Java applications with Spring More than 70 percent of enterprises cite improved productivity, faster project completion, improved portability and application quality as reasons for using Spring Magnolia is a registered trademark owned by Magnolia 3 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 4. Spring projects Spring Web MVC Spring WebFlow Spring Security Spring WebServices Spring Social • Twitter, Facebook, LinkedIn etc Spring Data • MongoDB, Neo4j, Riak, Cassandra etc Magnolia is a registered trademark owned by Magnolia 4 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 5. Spring and the CMS Magnolia is a registered trademark owned by Magnolia 5 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 6. Blossom integrates it for you Integrates Spring into the Magnolia module mechanism • Module Lifecycle Extends Spring Web MVC for templating And additional bridging Magnolia is a registered trademark owned by Magnolia 6 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 7. Spring Web MVC with Content No configuration just code Based on annotations Non-intrusive Spring centric approach • The controller is the template • The controller is the component • and they’re automatically available in Magnolia Magnolia is a registered trademark owned by Magnolia 7 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 8. Spring Web MVC @Controller public class ExampleController { @RequestMapping("/customers/list") public String render(ModelMap model) { model.put("title", "List of all customers"); model.put("customers", customerService.findAllCustomers()); return "customers/list"; } } Magnolia is a registered trademark owned by Magnolia 8 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 9. Templates @Controller @Template(title = "Main template", id = "blossomSample:pages/main") public class MainTemplate { @RequestMapping("/mainTemplate") public String render(Node page, ModelMap model) { return "pages/main.ftl"; } } Magnolia is a registered trademark owned by Magnolia 9 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 10. Areas @Controller @Template(title = "Main template", id = "blossomSample:pages/main") public class MainTemplate { @Controller @Area("main") public static class MainArea { @RequestMapping("/mainTemplate/main") public String render() { return "areas/mainArea.ftl"; } } ... } Magnolia is a registered trademark owned by Magnolia 10 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 11. Components @Controller @Template(title = "Shopping Cart", id = "blossomSample:components/shoppingCart") @TemplateDescription("Shopping cart") public class ShoppingCartComponent { @RequestMapping("/shoppingCart") public String handleRequest() { ... return "components/shoppingCart.ftl"; } ... } Magnolia is a registered trademark owned by Magnolia 11 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 12. Specifying what goes into an area @Controller @Area("promos") @AvailableComponentClasses({TextComponent.class, ShoppingCartComponent.class}) public static class PromosArea { @RequestMapping("/mainTemplate/promos") public String render() { return "areas/promosArea.ftl"; } } Magnolia is a registered trademark owned by Magnolia 12 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 13. Inheritance @Controller @Area("promos") @Inherits @AvailableComponentClasses({TextComponent.class, ShoppingCartComponent.class}) public static class PromosArea { @RequestMapping("/mainTemplate/promos") public String render() { return "areas/promos.jsp"; } } Magnolia is a registered trademark owned by Magnolia 13 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 14. Dialogs Dialogs are created using code, not configuration Based on annotations Dynamic behavior Validation of dialog input Detected and automatically available in Magnolia Magnolia is a registered trademark owned by Magnolia 14 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 15. Dialog factories @DialogFactory("page-dialog") public class PageDialog { @TabFactory("Content") public void contentTab(TabBuilder tab) { tab.addEdit("title", "Title", "Title of this page"); tab.addCheckbox("navigation", "Navigation", "Include page in menu"); } @TabFactory("Meta") public void metaTab(TabBuilder tab) { tab.addEdit("author", "Author", ""); tab.addEdit("keywords", "Keywords", "Keywords for this page"); tab.addEdit("description", "Description", "Concise page explanation"); } } Magnolia is a registered trademark owned by Magnolia 15 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 16. Dialog inheritance public abstract class BaseDialog { @TabFactory("Meta") public void metaTab(TabBuilder tab) { tab.addEdit("keywords", "Keywords", "Keywords for this page"); tab.addEdit("description", "Description", "Concise page explanation"); } } @DialogFactory("news-properties") @TabOrder("Content", “Meta”) public class NewsPageDialog extends BaseDialog { @TabFactory("Content") public void contentTab(TabBuilder tab) { tab.addEdit("subject", "Subject", "News subject"); tab.addDate("date", "Publication Date", "Date of publication"); tab.addFckEditor("text", "Text", ""); tab.addFile("image", "Image", ""); } } Magnolia is a registered trademark owned by Magnolia 16 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 17. Inline dialogs @Controller @Template(title = "Main template", id = "blossomSample:pages/main") public class MainTemplate { @RequestMapping("/mainTemplate") public String render(Node page, ModelMap model) { return "pages/main.ftl"; } @TabFactory("Content") public void propertiesDialog(TabBuilder tab) { tab.addEdit("title", "Title", ""); } } Magnolia is a registered trademark owned by Magnolia 17 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 18. Inline dialogs @Controller @Template(title = "Main template", id = "blossomSample:pages/main") public class MainTemplate { @Controller @Area("main") public static class MainArea { @TabFactory("Content") public void contentTab(TabBuilder tab) { tab.addEdit("borderWidth", "Border width", "Width of the border around the area"); } @RequestMapping("/mainTemplate/main") public String render() { return "areas/mainArea.ftl"; } } ... } Magnolia is a registered trademark owned by Magnolia 18 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 19. Dynamic dialogs @Controller @Template(id="blossomSample:components/book", title="Book") public class BookComponent { @Inject private BookStoreWebService webService; @TabFactory("Content") public void contentTab(TabBuilder tab) { tab.addSelect("id", "Book", "Select the book", webService.getBooks()); } @RequestMapping("/book") public String handleRequest(ModelMap model, Node content) { String bookId = content.getProperty("id").getString(); model.put("book", webService.getBook(bookId)); return "components/book.ftl"; } } Magnolia is a registered trademark owned by Magnolia 19 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 20. Validation @DialogFactory("page-properties") public class PagePropertiesDialog { @TabFactory("Meta") public void metaTab(TabBuilder tab) { tab.addEdit("description", "Description", "A concise page explanation"); } @TabValidator("Meta") public void validateMetaTab(DialogTab tab) { if (tab.getSub("description").getValue().length() < 20) AlertUtil.setMessage("Meta description needs to be longer"); } } Magnolia is a registered trademark owned by Magnolia 20 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 21. Pre-execution Portal like semantics Allows a component to fully process a request Developers can implement backing logic entirely in the components Magnolia is a registered trademark owned by Magnolia 21 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 22. View technologies Best of both worlds approach Magnolia and Spring constructs work side by side Built-in support for Freemarker and JSP Everything Spring supports work out-of-the-box, such as JSON, PDF, XML and RSS Magnolia is a registered trademark owned by Magnolia 22 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 23. Blossom in the wild Magnolia is a registered trademark owned by Magnolia 23 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 24. Maglev - Magnolia and Grails Brings Magnolia to the Grails platform Development entirely in groovy and GSP Grails productivity Builds on Blossom Magnolia is a registered trademark owned by Magnolia 24 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 25. Summary Enables access to Spring features and technologies • Directly in templates, components and dialogs Spring centric approach on templating • Based on annotations • Connects the CMS with Spring Web MVC Code over configuration • Versioning • Collaboration Magnolia is a registered trademark owned by Magnolia 25 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 26. Questions? Magnolia is a registered trademark owned by Magnolia 26 Version 1.1 International Ltd. Thursday, 7 March 2013
  • 27. Thanks for listening! Tobias Mattsson, Senior Software 07.03.2013 at Magnolia Amplify Engineer tobias.mattsson@magnolia-cms.com Magnolia International Ltd. www.magnolia-cms.com Magnolia is a registered trademark owned by Magnolia 27 Version 1.1 International Ltd. Thursday, 7 March 2013