Uploaded image for project: 'Magnolia Groovy Module'
  1. Magnolia Groovy Module
  2. MGNLGROOVY-131

Provide a GroovyBuilder for Magnolia

XMLWordPrintable

    • Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: Major Major
    • 2.3.2
    • None
    • integration
    • None
    • Yes

      We can leverage the great Groovy support for creating fluent builders (http://groovy.codehaus.org/Make+a+builder) and achieve something like this

      session = ctx.getJCRSession('config')
      
      def builder = new GroovyBuilder(session.getNode('/modules'))
      
      builder.'my-module'(type: 'mgnl:content') {
          apps(type:'mgnl:content') {
              myApp {
                  'class'('info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor')
                  appClass('info.magnolia.ui.contentapp.ContentApp')
                  icon('app-icon')
                  label('app-display-name')
                  subApps {
                      browser {
                       'class'('info.magnolia.ui.contentapp.browser.BrowserSubAppDescriptor')
                          subAppClass('info.magnolia.ui.contentapp.browser.BrowserSubApp')
                          label('app-display-name')
                      }
                  }
              }
          }
      }
      
      session.save()
      

        Acceptance criteria

              fgrilli Federico Grilli
              fgrilli Federico Grilli
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: