slide deck

IBM Digital Experience Version 8.5
May 9, 2014
What's New in Themes in WebSphere Portal 8.5
Stephan Hesmer
© 2014 International Business Machines Corporation
1
Agenda
●
Overview
●
TopNavigation Removal
●
Profile Updates
●
Dojo Story
●
Unsupported themes
●
New features, how they make themes simpler and how do they differ from before
●
●
Simplification, Simplification, Simplification
Theme Analyzer updates in 8.5
Overview
 Theme Architecture in WebSphere Portal 8.5 did not change. It has been the same since
7.0.0.2.
– Modularized Themes
 This should allow you to migrate more quickly and with less pain than before.
 There have been no major changes, the main focus in this release was on simplification,
serviceability and mobile support for worklight.
TopNavigation Removal
 The TopNav known from the old themes has been removed from desktop view. The TopNav itself still exists, but it is
hidden on desktops.
 If a you want the TopNav back then you can update the dynamic content spot definition in your themes plugin.xml
 From:
<sub-contribution type="markup" ref-id="85theme_topNav">
<uri value="mvc:smartphone/tablet@res:{war:contextroot}/themes/html/dynamicSpots/navigation.jsp?
rootClass=wpthemeHeaderNav&amp;rootLabel=Portal&amp;startLevel=0&amp;primeRoot=true"/>
</sub-contribution>
 To:
<sub-contribution type="markup" ref-id="85theme_topNav">
<uri value="res:{war:context-root}/themes/html/dynamicSpots/navigation.jsp?
rootClass=wpthemeHeaderNav&amp;rootLabel=Portal&amp;startLevel=0&amp;primeRoot=true"/>
</sub-contribution>
Profile Updates
 A few new standard profiles have been added. The main ones are:
– Lightweight and Lightweight with Dojo
– Deferred and Deferred with Dojo
– Basic Content and Basic Content with Dojo
 Full Profile was removed from the system
– We hope that this will avoid performance problems. Instead you need to identify the module you need by using the
Theme Analyzer and add that to your own custom profile
– A good starting point is the Basic Content Profile
 Profiles can be hidden as well now. The ones listed above are not hidden, but there are around 8 more hidden profiles
available in the system.
– Within the Edit Page Properties Dialog one can only select visible profiles.
– The hidden ones can be seen in the Theme Analyzer.
– If you want to set a hidden theme on a page you can do this as before by setting the page metadata
“resourceaggregation.profile” to point to the profile file.
Dojo Story
 Dojo 1.9 is the new level of Dojo that is supported
– We ship with 1.9.3, we are updating to a new third dot release in a CF if required. No major updates.
 With the new toolbar isolation in WebSphere Portal 8.5 there is no requirement for Dojo on the page
anymore even within Page Edit Mode.
– In WebSphere Portal 8.0 we only had Page View Mode dojoless, and Page Edit Mode still loaded
Dojo into the main browser DOM
 Unfortunately not all component were rewritten to be dojoless. The following components and features still
require Dojo and will load it into the main browser DOM. If you want a truly dojo free theme you cannot
use those features.
– Module: wcm_inplaceEdit (part of profile Deferred and Basic Content)
– Module: wp_federated_documents_picker
– Module: wp_content_mapping_picker
– Search and Tag Center Profile (which also include enabler/builder)
Unsupported Themes
 All 6.x Themes are no longer supported, even if they were shipped with Portal 7.
– The only supported themes are: PageBuilder2, Portal 7.0.0.2, Portal 8.0 and Portal 8.5
• What guidance will be provided provide to prospective WebSphere Portal and Web Content Manager V8.5
customers on how to plan and manage the theme updates they'll need to make when upgrading from
previous versions to the new modular theme?
1. There is still support for older themes on WebSphere Portal V8.0.0.1.
2. Regardless of the theme or Portal environment versions you are using, not all new V8 features are
supported if the theme is not modularized. If you want to take advantage of new features, you need
to move to the new theme architecture; this will also be a benefit to migration of themes going
forward.
3. Video on Developing Themes for Exceptional Web Experience: https://ibm.biz/BdRMtL
4. Understanding the Modular Theme Architecture: https://ibm.biz/BdRMtC
5. Article: How to convert a theme to the modular architecture introduced in WebSphere Portal 8.0:
http://www.ibm.com/developerworks/library/mo-modular-themes/index.html
New Feature List
 Dynamic Content Spot Updates
– Definition of dynamic spots now in modules
– Dynamic Content Spot Debugging
– mc datasource (Module Choice)
 Simple Modules
 WebDAV readme files
 Theme Validation now prominently visible in the main
admin toolbar menu
 Theme Analyzer Improvements
– Size Explorer
– Cache Groups
– Enhanced Validation Capabilities
 JSON Schema files in WebDAV
– Control Center
 Device class equations
– Client Tracing
 New EL Beans
– Export Module Titles and Descriptions as CSV
 Programming Model updates
 Miscellaneous (Resiliency, ...)
Dynamic Content Spot Updates
 Dynamic Content Spots can be defined as part of a module definition since 8.0.0.1. In Portal 8.5 we switched the
OOB Theme to use this feature exclusively since this provides an inline mechanism to provide the mappings instead
of storing them in the WAS REP.
– Removed from WAS Resource Environment Providers
– Part of a new module which is define in the theme war file's plugin.xml. Content snippet:
<extension id="wp_dynamicContentSpots_85" point="com.ibm.portal.resourceaggregator.module">
<module id="wp_dynamicContentSpots_85">
<contribution type="dyn-cs">
<sub-contribution type="markup" ref-id="85theme_footer">
<uri value="res:{war:context-root}/themes/html/dynamicSpots/footer.jsp"/>
</sub-contribution>
<sub-contribution type="markup" ref-id="85theme_crumbTrail">
<uri value="res:{war:context-root}/themes/html/dynamicSpots/crumbTrail.jsp?
rootClass=wpthemeCrumbTrail&amp;startLevel=2"/>
</sub-contribution>
<sub-contribution type="markup" ref-id="85theme_topNav">
<uri value="mvc:smartphone/tablet@res:{war:context-root}/themes/html/dynamicSpots/navigation.jsp?
rootClass=wpthemeHeaderNav&amp;rootLabel=Portal&amp;startLevel=0&amp;primeRoot=true"/>
</sub-contribution>
...
</contribution>
</module>
</extension>
–
Dynamic Content Spot Debugging
 Dynamic Content Spots can now be visually debugged. This feature can be turned on and off using the Theme
Analyzer's Control Center.
– This allows to identify the part on the page that were contributed by what dynamic content spot and also the
location of the dynamic content spot
Dynamic Content Spot Updates
 The Dynamic Spot Content Mapping Service was enhanced to allow the filtering of dynamic spots based on the fact
whether the module associated with the dynamic spot is part of the current profile or not.
 The format used in 8.0 is deprecated. Example:
– res:/wps/themeModules/modules/asa/jsp/asaPortlet.jsp, wp_analytics
 New format uses the mc schema which stands for module choice
– mc:wp_analytics@res:/wps/themeModules/modules/asa/jsp/asaPortlet.jsp
Simple Modules
 Quick and simple way to define a new module through folders and
files.
 Simply create a new folder, drop a file in it and be done.
– Still requires clearing the Theme Cache by using the Theme
Analyzer
 readme files within all well-defined folders of WebDAV provide
inline help right where you need it.
– Also available in contributions, layout-templates, profiles, and
the main directory
Simple Modules
 The idea behind simple modules is to provide 80% of the capabilities of modules through a simpler model making it quicker
and more 'natural' to use modules.
 High level overview of supported features
– prereq definition, title and description, capabilities
– head, config and menu contributions supported (nothing else)
– Resources can be defined in the two formats (same for js and css)
• *.js/*.js.uncompressed.js
• *.min.js/*.js
– Device classes are supported
 Not supported
– No versioning of modules or prereqs
– No active content such as JSPs
 All details are documented in the readme.txt in WebDAV and the Infocenter.
JSON schemas
 JSON schemas have been made available to verify the JSON
files of profile and module contributions for validity.
 They can be found in WebDAV in the folders contributions
and profiles
Device class equations
 Device class equations provide an enhanced device selection mechanism. Example equations:
– android+smartphone
– worklight+(ios/android)
– (android/ios)+smartphone+!blackberry
 Equations can be used
– in module sub contributions to select an individual resources
– within a mvc datasource uri to delegate more fine-grained to certain endpoints
– As part of the portal:if tag within JSPs
New EL Beans
 There are two new EL Beans introduced
– ProfileListBean
– ProfileBean
 Example:
<div>Current Theme: ${wp.themeList.current.title}</div>
<div>Current Profile URI: ${wp.themeList.current.profiles.current.uri}</div>
<div>Current Profile RelativePath:
${wp.themeList.current.profiles.current.relativePath}</div>
<div>Current Profile Title: ${wp.themeList.current.profiles.current.title}</div>
<div>Current Profile Description: ${wp.themeList.current.profiles.current.description}</div>
<div>Current Profile Metadata (Hidden):
${wp.themeList.current.profiles.current.metadata['com.ibm.portal.Hidden']}</div>
<div>
All Profiles
<c:forEach var="profile" items="${wp.themeList.current.profiles}"
varStatus="profileStatus">
${profile.title} / ${profile.relativePath}<br/>
</c:forEach>
</div>
Programming Model updates
 Contribution URIs for Web Modules
– {war:context-root}
– This variable fetches the context root of the containing WAR file and inserts it in place. It only works for modules
defined as part of a WAR file. This does not work for modules defined in WebDAV or somewhere else in the
classloading hierarchy, for example, a shared application.
 Example:
<contribution type="head">
<sub-contribution type="css">
<uri value="res:{war:context-root}/css/helloWorld.css" />
<!-- define alternate styles for right to left -->
<uri type="rtl" value="res:{war:context-root}/css/helloWorld_rtl.css" />
<!-- define alternate styles for an iPad -->
<uri deviceClass="tablet+iOS" value="res:{war:context-root}/css/helloWorld_iPad.css" />
</sub-contribution>
<sub-contribution type="js">
<uri value="res:{war:context-root}/js/helloWorldHead.js" />
</sub-contribution>
<sub-contribution type="markup">
<uri value="res:{war:context-root}/markup/helloWorldHead.html" />
</sub-contribution>
</contribution>
Miscellaneous
 Javascript isolation within combined requests
 Individual resources from modules cannot crash the full theme anymore
 Load only JSON files in well known folders such as contributions/profiles
 Missing ending slash on theme ref metadata will not cause error any longer
 Greater Performance for development mode
 Profile Description is shown in Edit Page Properties
 All modules received title and descriptions
 Minor updates to profile and module JSON/XML handling. E.g. capabilitys can now be written
also correctly like this capabilities
 No more Java Code in OOB theme JSPs
OOB Theme Modules and their dependencies
 The best view of all modules and their dependencies can be retrieved by using the Theme Analyzer.
 Additionally there is a doc article that shows (almost) all modules in the system
– http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/dev-theme/themeopt_oob.dita
 Because many customers had trouble to find the module they need we introduced a new usecase based
view that explains it more high level and only explains the ones that make sense in a profile
– http://www-01.ibm.com/support/knowledgecenter/SSHRKX_8.5.0/mp/devtheme/theme_modules_features.dita
Theme Analyzer Improvements
 The Theme Validation Report Feature was introduced in Version 2.0 of the Theme Analyzer for 8.0.0.1.
 In WebSphere Portal 8.5 the Theme Validation Report capability was extended:
– More validation messages such as “EJPNO1021W: Unordered dynamic content spots found“
– Syntax checking of profiles and modules show up in the reports
 Report count now displayed in the admin navigation menu of the toolbar, immediately showing issues within the theme
or theme artifacts
Size Explorer
 The Size Explorer allows to analyze modules within profiles with regards to their size relative to
each other.
Cache Groups
 The cache group explorer allows to analyze resources of the same type which are combined into one request for better
performance. Each resource can set HTTP cache headers. Identical sets of cache headers are grouped into cache
groups. When resources are combined, the cache group with the least cachability is used.
Control Center
 Provides development utilities around themes
to easily control various capabilities. Details
can be read on the right as everything is
explain in the screen.
Client Tracing
 Instead of setting client traces via WAS REP settings as required in 8.0 one can set client traces through the UI below.
Those settings are immediately available without server restart.
 'Click to copy' allows to turn on traces on another browser. This is a two staged process. First you have to turn on the
uncompressed resources in order to be able to log traces. Second you need to turn on the actual traces on that
browser. Simply copy the provided scriplets and execute them.