Book 2: Advanced Developer - ranjanui/AEM GitHub Wiki
Syllabus
- Development Models for Teams
- OSGI Components, annotation
- Sling, Resource, Test
- Sling Events
- Sling Scheduling
- JCR (Oak) Basics, Content Modeling, Indexing, Search
- JCR Versioning, Observation
- Jackrabbit Oak
- User, group, Permissions
- Testing(Sling and Maven)
- Deployment and packaging
- Dispatcher, Reverse Replication
- Content Automation, Periodic Importers
- Overlays, Extending Foundation Components, Content Reuse
- Content Migration/Import
- Higher Level APIs
- Client Libraries
- AEM Application modules sit on the top of AEM Shared framework, -> Granite, contains all the functionality that is shared among all the application modules. AEM applications -> Sites, Assets, Apps etc,
01 Development Models for Teams
- Using Maven build the project(POM) - Project object Model
- nt:file , nt:folder
- other types rendered as directories in the file system with sets of properties and values in a specific file called .context.xml
17. Client Libraries
- Client Libraries are a folder of node type cq:ClientLibraryFolder, that contains client side assets, css and js files and required resources. eg: images and fonts
- convention: under /etc/clientlibs or within the component folder
Properties:
jcr:primaryType: cq:ClientLibraryFolder
category: an array of names to identify the client-library
depedencies: an array of categories(dependent client libraries)
embed: an array of client libraries that will be included
- css.txt or js.txt files - starts with #base=., for subfolder starts with #base=sub-folder
- client library included with cq:includeClinetLib
- cq:includeClinetLib/ tag includes a client library which can be a JS, css, or a theme library.
- Client library loaded programmatically with the com.day.cq.widget HtmlLibraryManager service interface.
- adding clientlib:
//all js, css, theme
<cq:includeClientLib categories="cq.wcm.edit" />
//only js libs
<cq:includeClientLib js="cq.collab.calender, cq.security" />
//themes only
<cq:includeClientLib theme="cq.collab.calender, cq.security" />
//css only
<cq:includeClientLib css="cq.collab.calender, cq.securoty" />
- Manage Clinet Libraries-> localhost:4502/libs/cq/ui/content/dumplibs.html