What is the difference between embed[] and dependencies[] for type ClientLibraryFolder?
categories
is the list of identifiers to publish a clientlib under.
dependencies
should cause your page to have extra requests to other clientlibs (external "subscribe")
embed
should "aggregate" those other clientlibs INTO the current clientlib (internal subscribe)
both properties can have multiple values, and the CRXDE Lite interface allows changing the order of items in the value list.
Given Clientlibs:
- /etc/clientlibs/depA categories=["depA"]
- /etc/clientlibs/depB categories=["depB"]
- /etc/clientlibs/depC categories=["depC"]
- /etc/clientlibs/useA categories=["useA"], dependencies=["depA", "depB"]
- /etc/clientlibs/useB categories=["useB"], embed=["depB", "depC"]
If a page uses "useA" <cq:includeClientLib categories="useA"/>
, then the HTML should have requests for depA, depB, useA (through their appropriate urls, ie /etc/clientlibs/depA.css
If a page uses "useB" <cq:includeClientLib categories="useB"/>
, then the HTML should have only a request for useB. The contents of /etc/clientlibs/useB.css
would be the concatenation of contents of depB, depC, useB.
The library manager at {localhost}/system/console/configMgr/com.day.cq.widget.impl.HtmlLibraryManagerImpl
has a debug configuration to determine if the requests are ACTUALLY concatenated. This is documented at http://dev.day.com/docs/en/cq/current/deploying/configuring_osgi.html#par_variable_18
To define multiple dependencies (assuming you are using maven to build from your filesystem and install into CQ5), the clientlibs folder will have a file ".content.xml" that needs the following attribute:
dependencies="[depB,depC]"