Course intended for:

The training is addressed to Java programmers (backend), who would like to get familiar with the application development skills in the Adobe Communiqué content management system.

Course objective:

The training objective is to acquire the basic skills necessary to develop Web portals on the basis of CQ. It introduces the general theory and aspects of the technology, necessary to commence programming. After the participants get familiar with the locally launched instances, the trainer will discuss the general issues associated with the fundamental concepts of CQ, which are OSGi and its implementation in the form of Apache Felix, Java Content Repository using the Content Repository Extreme as an example, ReST and the Apache Sling Web framework. Then the participants will go through the application development process, including the Web template with components to be embedded, integrated with the Web interface, which is to be made accessible later for the Web page editors. The basic terms, necessary to work as an author, such as parsys and dialog, are discussed. Some frequently encountered issues are also presented, such as the basics of securing access through the Closed User Group, path mapping and shortening, introduction to dispatchers. Main emphasis, however, is put on getting the participants familiar with the API provided and with the basic methods of access to objects and data in the rendered page requests.

Requirements:

The training content assumes the practical skill of Java language programming, basic HTML ad familiarity with the JSP technology.

Course parameters:

5*8 hours (net 5*7 hours) of lectures and workshops (with a visible emphasis on workshops). During the workshops, exercises will be conducted to provide the participants with basic programming skills and a thorough knowledge of the CQ environment.

Group size: no more than 8 participants.

Course curriculum

  1. Introduction to CQ
    1. Launching – command line parameters
      1. Author mode
      2. Publish mode
    2. The system interface
    3. Content management
      1. Activation
      2. Pages
        1. Structure
        2. New page creation
          1. Title vs. name
          2. Template
        3. Switching to edition
        4. Operations
      3. Media (digital assets)
        1. Upload
        2. Renderings
        3. Editing properties
        4. Operations
      4. Tags
        1. Operations
        2. Properties
    4. Administration
      1. Users
        1. Operations
        2. Groups
        3. Properties
        4. Access rights
      2. Tools
        1. Structure
        2. Designs
        3. ClientLibs
        4. Workflows
      3. Basic package management - Package Manager
        1. General information
        2. Upload
        3. Installation
      4. Replication
        1. General information
        2. Agents
        3. Tree activation
    5. Tools associated with CRX repository
      1. CRXDE Lite
        1. Interface
        2. Tree structure
        3. Properties of nodes
        4. jcr:content
        5. Node edition and operations
        6. Node types
        7. Inheritance
      2. Packages
        1. Development
        2. Properties
        3. Filters
        4. ZIP file structure
          1. Conventions
          2. jcr_root
          3. .content.xml
          4. The content of META-INFvault
          5. Package manual edition
            1. What needs particular care
            2. Structure in subfolders vs. structure in xml
    6. General system architecture
  2. Page edition
    1. Interface
    2. Content Finder
    3. Override #cf
    4. Sidekick
    5. Components
      1. Grouping
      2. Parsys
      3. Adding
      4. Dialog
    6. Operations menu
    7. Page properties
    8. Preview mode
    9. Design mode
    10. Parameters in URL
      1. ?debug=layout
      2. ?wcmmode=(edit|preview|design|disabled)
      3. ?debugClientLibs=true
    11. Quick preview of the node structure thanks to extensions
      1. .html
      2. .xml
      3. .json
    12. Best practices
  3. ReST
    1. Definition
    2. HTTP
    3. Resource-oriented
    4. Addressable resources
    5. Uniform, constrained
    6. Representation oriented
    7. Stateless
  4. JCR + CRX
    1. Hierarchy
    2. Transactionabillity
    3. Referential constraint
    4. Versioning
    5. Workspace
    6. Name space
    7. Paths
    8. Path transformation to URL
    9. Global ID
    10. Full text search
    11. Nodes
      1. Attributes
        1. Value types
          1. string
          2. uri
          3. boolean
          4. date
          5. long
          6. double
          7. decimal
          8. path
          9. name
          10. binary
          11. reference
          12. weakreference
        2. Distinguished attributes
          1. jcr:primaryType
          2. sling:resourceType
          3. sling:resourceSuperType
          4. jcr:mixinTypes
          5. jcr:title
          6. cq:template
          7. jcr:uuid
          8. cq:renderer
      2. Types (jcr:primaryType)
        1. nt:unstructured
        2. nt:file
        3. nt:Folder
        4. nt:OrderedFolder
        5. dam:Asset
        6. cq:Page
        7. cq:PageContent
        8. nt:resource
        9. cq:Component
        10. cq:EditConfig
        11. cq:Dialog
        12. cq:Widget
        13. cq:WidgetCollection
        14. cq:Tag
      3. Inheritance
    12. What it is like in practice
      1. Node copying
      2. Issues requiring care
  5. Apache Felix OSGi
    1. Modularity
    2. Review/system/console
      1. Bundles
      2. Components
      3. Configuration
      4. Services
      5. Sling Resource Resolver
    3. Bundle vs jar
      1. MANIFEST.MF
      2. Bundle-SymbolicName
      3. Import-Package
      4. Export-Package
      5. Require-Bundle
      6. Creating bundles from jar files
    4. Bundle lifecycle
    5. Selected API components
      1. org.osgi.framework.BundleActivator
      2. org.apache.felix.scr.annotations.Service
      3. org.apache.felix.scr.annotations.Component
      4. org.apache.felix.scr.annotations.Properties
    6. Exemplary service
      1. Implementation
      2. jar - > bundle
      3. Installation
      4. Use
  6. Apache Sling
    1. ReST + JCR + OSGi
      1. Scripts – languages
    2. Resources
    3. URL decomposition
      1. Content path
      2. Selectors
      3. Extension
      4. Suffix
    4. Script file location on the basis of URL
      1. libs, apps
      2. GET, POST
      3. Priorities
    5. Mappings for Resource Resolution
      1. sling:match
      2. sling:redirect
      3. sling:internalRedirect
      4. sling:alias
      5. sling:status
  7. Out of the Box
    1. /libs
      1. /libs/foundation/global.jsp
      2. components
        1. parsys
        2. sitemap
        3. text
        4. image
        5. breadcrumb
    2. Geometrixx - a model application
      1. application structure
      2. content structure
      3. components
      4. renderers
  8. Development
    1. Tools
      1. CRXDE Lite based development
      2. FileVault
      3. Maven
      4. Eclipse
    2. Java API overview
      1. CQ taglib
        1. include
        2. includeClientLib
        3. defineObjects
        4. requestURL
      2. JSP objects
        1. componentContext
        2. component
        3. currentDesign
        4. currentPage
        5. currentStyle
        6. designer
        7. editContext
        8. pageManager
        9. pageProperties
        10. properties
        11. resourceDesign
        12. resourcePage
        13. resource
        14. slingRequest
        15. resourceResolver
      3. Classes, interfaces
        1. org.apache.sling.api.adapter.Adaptable
        2. org.apache.sling.api.resource.Resource
        3. org.apache.sling.api.resource.ResourceResolver
        4. org.apache.sling.api.scripting.SlingScriptHelper
        5. org.apache.sling.api.request.RequestPathInfo
        6. com.day.cq.wcm.api.Page
        7. com.day.cq.wcm.api.PageManager
        8. com.day.cq.dam.api.Asset
    3. We develop
      1. An application
      2. A template
      3. A renderer
      4. Page structure
      5. Basic page content
      6. Several rendering scripts
      7. Modularization
      8. We initialize WCM
      9. Design
      10. Navigation
      11. Title
      12. Logo
      13. We use drag and drop
      14. Bundle
      15. Dialog
        1. panel
        2. textfield
        3. textarea
        4. selection
        5. options
        6. tabpanel
        7. multifield
        8. richtext
        9. image
        10. dialogfieldset
    4. Debugging
    5. Security
      1. CUG
      2. Dispatcher

Any questions?

* Required.


Contact
Phone +48 22 2035600
Fax +48 22 2035601
Email