Inspecting or Troubleshooting with portlet preferences stored in different modes



Extracting different types of Portlet Preferences

1.       Personal or User Level (Edit Mode) preferences : Preferences set in the edit mode is called user level preferences. These preferences are scope to only that particular instance of portlet (If same page has more than one instance of this portlet, each instance will their own copy) .   You can view all user level preferences in page XMLAccess export.

                       <portletinstance action="update" domain="rel" objectid="Z5_SIB0OKE1GON2E0IT6I9LS520O5" portletref="Z3_SIB0OKE1GON2E0IT6I9LS52084"/>
                        <portletinstance action="update" domain="cust" objectid="Z5_SIB0OKE1GON2E0IT6I9LS520O3" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" parentref="Z5_SIB0OKE1GON2E0IT6I9LS520O5" portletref="Z3_SIB0OKE1GON2E0IT6I9LS52084">
                            <preferences name=".SivaPortletEditKey" update="set">
                                <value><![CDATA[TestEditPreference]]></value>
                            </preferences>
                        </portletinstance>

NOTE:  domain=”cust” indicates that these preferences will go to the customization schema  (that is where all user customizations stored). Actucal portlet instance related will go the release schema (that is all portal resources gets stored).

2.       Shared (Edit Defaults Mode) Preferences : Preferences set in the “Edit Defaults” mode is applicable only for this instances of the portlet for all users. You can get these preferences also from the page XMLAccess export.

                        <portletinstance action="update" domain="rel" objectid="Z5_AAAAA" portletref="Z3_SIB0OKE1GON2E0IT6I9LS52084">
                            <preferences name=".SivaPortletEditDefaultsKey" update="set">
                                <value><![CDATA[TestSharedPreference]]></value>
                            </preferences>
                        </portletinstance>

Note: Above sample XML snippet contains shared preference that gets stored in the release schema. These preferences are not associated with any owner as user level preferences.  
There are scenarios where you may see same preference key  in the user level and also at the edit shared preferences (Ex: like No.of results to display portlet…etc . Requirements like Editors should able set default value for this instance (for all users) and let end users to configured their preferred number).   Sample page XMLAcess  export will look like below.

                        <portletinstance action="update" domain="rel" objectid="Z5_SIB0OKE1GON2E0IT6I9LS520O5" portletref="Z3_SIB0OKE1GON2E0IT6I9LS52084">
                            <preferences name="Common-Pref-Key" update="set">
                                <value><![CDATA[TestSharedPreference]]></value>
                            </preferences>
                        </portletinstance>
                        <portletinstance action="update" domain="cust" objectid="Z5_SIB0OKE1GON2E0IT6I9LS520O3" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" parentref="Z5_SIB0OKE1GON2E0IT6I9LS520O5" portletref="Z3_SIB0OKE1GON2E0IT6I9LS52084">
                            <preferences name="Common-Pref-Key" update="set">
                                <value><![CDATA[TestEditPreference]]></value>
                            </preferences>
                        </portletinstance>



3.       Global or Admin (Config Mode) Preferences :  Preferences set in the “Config” mode is applicable to all instances of this portlet on all pages for all users . As these preferences are not specific to any page,  we can’t retrieve them using page XMLAccess export.   You can retrieve these preferences from the portlet XMLAccess export.

<portlet action="update" active="true" defaultlocale="en" domain="rel" name="SivaPortlet" objectid="Z3_SIB0OKE1GON2E0IT6I9LS52084" provided="false" servletref="ZV_SIB0OKE1GON2E0IT6I9LS52080">
                    <preferences name=".SivaPortletConfigKey" update="set">
                        <value><![CDATA[TestConfigPreference]]></value>
                    </preferences>
                    <access-control externalized="false" owner="uid=wpsadmin,o=defaultwimfilebasedrealm" private="false"/>
                </portlet>

                Another way of inspecting these admin level preferences is using the portal admin console --> portlets -->configure

               



Resources

Enable out of the box WCM Search in the authoring portlet


Recently we had scenario where search functionality in the authoring portlet is not working (i.e. out of the box search that’s available in the authoring portlet).

Even though we had federated search configured to pull the contents from the WCM ,  Content Authors still need to search for their draft contents,…etc.

Change the following configuration  in icm.properties file under 
/opt/ibm/WebSphere/wp_profile/PortalServer/jcr/lib/com/ibm/icm

jcr.textsearch.enabled=true

Resources

IE6 freeze issue when GZIP compression enabled on load balancer for WP7


WP7 browser requirements clearly states that it doesn’t support IE6 for lot of functionalities but recently as part of theme development we had to support the IE6 browser for the portal 7 and IE6 browser is getting freeze very often . 

We tried following different steps to make the application works in IE6

1.       Make sure no of CSS files less than 31 (Click Here more details).

2.       Make sure you don’t have combination of HTTPS ,  Compression (GIP) &  chunked encoding enabled. Click Here for microsoft support article explains about the IE6 freezing.


Resources

IBM announced Websphere Portal 8 official release



ClickHere for the full list of futures that are part of websphere portal 8

ClickHere for complete list of feature comparison of different versions of websphere portal

Resources

IE Security Popup Issue for Ephox Editlive Editor (Authoring Templates with Ephox)


Issue:  Internet Explorer (7 or 8) causes security warning popup when you open authoring template with ephox editor  i.e. Rich Text Component  (with advanced editor  enabled) over https .

Reason: Ephox Editlive Editor uses the Java plugin to run on browsers . When Ephox Editor is placed on the page it includes the download URL for the JRE (Sun/Oracle). This link is used so that the browser can offer to install the JRE if it is not available on that machine. Unfortunately, this URL uses HTTP.


Resolution: It little different for the different versions

Portal v7.0.0.1  (Editlive v 7.6.1.71)  :

/opt/IBM/WebSphere/wp_profile/installedApps/NODENAME/EphoxEditLive.ear/editor-editlive.war/res/editlivejava/editlivejava.js

Change the http to https in highlighted code

        var getRemoteJreDownloadUrl = function(minVersion) {
                // download list is at http://www.oracle.com/technetwork/java/javase/autodownload-140472.html
                var base = "http://java.sun.com/update/";
                var ext = minVersion === "1.4.2"
                        ? "1.4.2/jinstall-1_4_2_19-windows-i586.cab"
                        : "1.6.0/jinstall-6u26-windows-i586.cab";
                return base + ext;
        };


Portal v7.0.0.0   (Editlive v 7.0.1.9)  :

/opt/IBM/WebSphere/wp_profile/installedApps/NODENAME/EphoxEditLive.ear/editor-editlive.war/res/editlivejava/editlivejava.js

Change the http to https in highlighted code

if(EditLiveJava.minimumJREVersion == "1.4.2"){
                str += ' codebase="https://java.sun.com/update/1.4.2/jinstall-1_4_2_14-windows-i586.cab#Version=1,4,2"';
} else if(EditLiveJava.minimumJREVersion == "1.4.1"){
                str += ' codebase="https://java.sun.com/update/1.4.1/jinstall-1_4_1_07-windows-i586.cab#version=1,4,1"';
} else if(EditLiveJava.minimumJREVersion == "1.6.0") {
                str += ' codebase="http://java.sun.com/update/1.6.0/jinstall-6u12-windows-i586.cab#version=1,6,0"';
} else {
                str += ' codebase="https://java.sun.com/update/1.6.0/jinstall-6u16-windows-i586.cab#Version=1,4,2"';
}


Note : Make sure to access those .cab files using the https , if it’s not accessible from your browser directly probably you need to get them on to your local server and access it through https

Portal v6.1  :



Resources: