...
DLM functionality and fragments are most commonly defined in a file called, dlm.xml, which is located in the properties directory. The default dlm.xml file for 2.5.0 is shown below. Although no DTD or schema is currently used two top level elements are supported by the DLM code: dlm:property and dlm:fragment. As of uPortal 3.1.0, it is also possible to define DLM fragments in the portal database (see below).
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<managedLayoutFragments xmlns:dlm="http://org.jasig.portal.layout.dlm.config"> <dlm:property name='defaultLayoutOwner' value='fragmentTemplate'/> <!-- <dlm:property name='layoutDecorator' value='someClass'/> --> <!-- Controls clearing of dlm fragment cache. This allows changes made to layout owners to be reflected once the cache has been updated. Specified in minutes. --> <dlm:property name='org.jasig.portal.layout.dlm.RDBMDistributedLayoutStore.fragment_cache_refresh' value="5"/> <dlm:fragment name='Entertainment' ownerID='ent-lo' precedence='100'> <dlm:audience evaluatorFactory='org.jasig.portal.layout.dlm.providers.PersonEvaluatorFactory'> <paren mode="NOT"> <attribute name="username" mode='equals' value='guest'/> </paren> </dlm:audience> </dlm:fragment> <dlm:fragment name='News' ownerID='news-lo' precedence='80'> <!-- <dlm:role>Students</dlm:role> --> <dlm:audience evaluatorFactory='org.jasig.portal.layout.dlm.providers.GroupMembershipEvaluatorFactory'> <paren mode="AND"> <attribute mode='memberOf' name='Students'/> <paren mode="NOT"> <attribute mode='memberOf' name='Faculty'/> </paren> </paren> </dlm:audience> </dlm:fragment> </managedLayoutFragments> |
...
As an alternative to defining DLM fragments in dlm.xml, portal administrators may elect to enable the RDBMConfigurationLoader
, which loads fragment definitions from the database via Hibernate and JPA. The major advantage of this approach is that it allows fragments to be added, removed, or change their audiences without a portal restart.
Turn on the RDBMConfigurationLoader
by defining the following property in dlm.xml:
...
RDBMConfigurationLoader
can be turned on by modifying persistenceContext.xml and layoutContext.xml
Warning | ||
---|---|---|
| ||
Once you make this change, DLM will no longer read fragments from dlm.xml; you must define all your fragments in the database. |
...
persistenceContext.xml
Uncomment fragmentDefinitionDao
bean:
Code Block | ||||
---|---|---|---|---|
| ||||
<bean id="fragmentDefinitionDao" class="org.jasig.portal.layout.dlm. |
...
FragmentDefinitionDao">
</bean>
|
layoutContext.xml
Modify dlmConfigurationLoader
bean:
Code Block | ||||
---|---|---|---|---|
| ||||
<cache name <bean id="dlmConfigurationLoader" class="org.jasig.portal.layout.dlm.EvaluatorRDBMConfigurationLoader"> eternal="false" maxElementsInMemory<property name="100configurationFile" overflowToDiskvalue="false" diskPersistent="false"classpath:/properties/dlm.xml" /> <property timeToIdleSecondsname="0fragmentDao" timeToLiveSecondsref="300fragmentDefinitionDao" memoryStoreEvictionPolicy="LRU" /> |
persistenceContext.xml
Code Block | ||
---|---|---|
xml | xml |
<bean id="fragmentDefinitionDao" class="org.jasig.portal.layout.dlm.FragmentDefinitionDao">
</bean>
|
Importing Fragment Definitions
...