Portal tools - release notes


1.0 Limitations
   1.1 JSR 168 portlets should have ID attribute
   1.2 Edit functions for WSRP portlets are disabled
   1.3 Relational Records and Portal V5.1
   1.4 Broken link warning messages are shown in the Problems view
   1.5 Markup support in Portal Designer
2.0 Known problems
   2.1 When I run a portlet project on the test environment, a previously-run portal project is run instead
   2.2 Changing the default theme in my 5.1 portal project is not reflected in the server or test environment
   2.3 (Customizing portals) Cannot open license.html and privacy.html files in an imported portal project or a new portal project created from test environment (PQ93681)
   2.4 Incorrect menu captions are displayed on Click-to-Action portlets
   2.5 (Portlet deployment descriptor) Editing with the JSR 168 Portlet Deployment Descriptor editor
   2.6 (Migrating portlets) Migrating Portal V4.2 portlets to V5.0 fails
   2.7 (Importing/creating portal) WSRP-related errors are shown in the Problems view of an imported portal project or a new portal project created from the test environment (PQ95638)
   2.8 Struts JSR168 portlet created with config mode does not enable the config mode for the portlet in runtime.

1.0 Limitations

1.1 JSR 168 portlets should have ID attribute

When you create JSR 168 API portlets using the New Portlet wizard, the Rational Software Development Platform automatically assigns an ID attribute. The ID attribute should be included in the <portlet-app/> element of the portlet.xml file to uniquely identify the portlet to the server. (This attribute corresponds to the UID attribute used by IBM portlet API portlets.)

If you have JSR 168 API portlets that do not have an ID attribute on the <portlet-app/> element in the portlet.xml file, add the ID attribute with its unique value immediately after importing the portlet into the Rational tools workspace. To add the ID attribute, open the portlet deployment descriptor and edit it using the Source view. Do not change the ID value after you have deployed your JSR 168 API portlet to a portal server, or after you have used your JSR 168 API portlet project in a portal project.

There are limitations on a JSR 168 API portlet without an ID attribute:

1.2 Edit functions for WSRP portlets are disabled

Because Portal Designer does not support WSRP portlets, related editing functions for these portlets, such as Copy and Move, are disabled. Even so, WSRP portlets can still be imported from and deployed back to WebSphere Portal.

1.3 Relational Records and Portal V5.1

When running a portlet that contains either a Relational Record List or a Relational Record (SDO), you may see the following error in your server log:

[date and time] 4942fbd0 SystemOut O java.lang.LinkageError: Class org/eclipse/emf/ecore/EClass violates loader constraints: definition mismatch between parent and child loaders

You can ignore this error.

1.4 Broken link warning messages are shown in the Problems view

When creating a portal project using the New Portal Project wizard, or importing a sample Portal project from the Samples Gallery, broken link warning messages appear in the Problems view.

1.5 Markup support in Portal Designer

Portal Designer only displays HTML, cHTML, and WML as supported markups. If you have specified other supported markups for a page or label in a project that you import, they are maintained. However, you cannot change those markups, and they will not be displayed in the Properties view.

2.0 Known problems

2.1 When I run a portlet project on the test environment, a previously-run portal project is run instead

When running on the Websphere Portal test environment, portal projects take precedence over portlet projects. If you run a portal project on the test environment, an association is made between the portal project and the server configuration. Before you can run portlet projects using the same server configuration, you will need to break this association.

To correct the association problem, follow these steps:

  1. In the Servers view, select Add and remove projects from the server's context menu.
  2. Remove the wps project, any portal project EAR projects, and any portlet EAR projects associated with portal projects (if they are associated with the server configuration).

2.2 Changing the default theme in my 5.1 portal project is not reflected in the server or test environment

For WebSphere Portal 5.1, when a portal has been previously displayed in a Web browser, and then this product is used to modify this portal's default theme, you must restart the server to fully apply the new default theme.

In the WebSphere Portal test environment, changing the default theme by republishing the portal configuration will not work. The test environment must be restarted.

This problem can be corrected for WebSphere Portal 5.1 by applying PK00826. This fix will be incorporated into future versions of WebSphere Portal.

2.3 (Customizing portals) Cannot open license.html and privacy.html files in an imported portal project or a new portal project created from test environment (PQ93681)

Problem: Cannot open license.html or privacy.html files in an imported portal project or a new portal project created from test environment using Page Designer, due to incorrect encoding.

Solution: Apply APAR PQ93681 to your Portal server or test environment, then either re-import the project from the portal server or re-create the project from the test environment, respectively.

Note: This problem has been fixed for WebSphere Portal 5.1 and WebSphere Portal 5.0.2.3, but not for WebSphere Portal 5.0.2.2.

2.4 Incorrect menu captions are displayed on Click-to-Action portlets

When you run or deploy Click-to-Action-enabled portlet projects, the menu captions are not displayed on the Click-to-Action menus. Instead, the action names are displayed. If you require the menu captions to be displayed correctly, you can use this product to export your portlet project as a WAR file, and then install it on WebSphere Portal using the Manage Web Modules portlet.


This is a WebSphere Portal 5.1.0.0-only problem which can be fixed by updating to WebSphere Portal 5.1.0.1.

2.5 (Portlet deployment descriptor) Editing with the JSR 168 Portlet Deployment Descriptor editor

Problem: In the JSR 168 Portlet Deployment Descriptor, you cannot edit a portlet name in the Portlet Collections area.

Solution: Edit the portlet name in the Source page.

2.6 (Migrating portlets) Migrating Portal V4.2 portlets to V5.0 fails

Problem: Changing the Portlet API level fails if the length of the class path is long.

Solution: You must correct the Java Build Path of the migrated portlet projects. For the required Java Build Path, you can refer to a Basic portlet project that is generated by the New Portlet Project wizard. Add the missing required JAR files to the Java Build Path of your migrated portlet project.

2.7 (Importing/creating portal) WSRP-related errors are shown in the Problems view of an imported portal project or a new portal project created from the test environment (PQ95638)

Problem: When importing an existing portal site from WebSphere Portal or creating a new portal project from the test environment, validation errors related to WSRP show up in the Problems view against the imported or created portal project.

Solution: Apply the APAR PQ95638 to WebSphere Portal or the WebSphere Portal test environment before importing a portal site or creating a new portal project, respectively.

Note: This has been fixed for WebSphere Portal 5.1 and WebSphere Portal 5.0.2.3, but not fixed for WebSphere Portal 5.0.2.2.

2.8 Struts JSR168 portlet created with config mode does not enable the config mode for the portlet in runtime.

When you create a Struts JSR168 portlet with config mode selected, and run this portlet in a portal server or test environment, the portlet skin does not display the option to select config mode,  which is represented by a wrench on the portlet skin.

There are two problems.
  1. The tool did not set up the portlet configuration properly to use the config mode.
  2. The JSR168 version of the StrutsPortlet does not support "config" mode by default . Thus, even if the tool has configured the portlet properly, the portlet will not understand "config" mode.

A workaround is available to enable config mode for a Struts JSR168 portlet. Once a Struts JSR168 portlet with config mode is created in the portlet project:

  1. In this project, create a subclass (not in the default package) of the StrutsPortlet that overrides the doDispatch method.  In the doDispatch method add code to check for the config mode.  See below:
    package my.pkg; // do not use default package. 
    import java.io.IOException;
    import javax.portlet.*;
    import com.ibm.portal.struts.portlet.StrutsPortlet;
    
    /**
    * StrutsPortlet that can be used with config mode. 
    */
    public class ConfigEnabledStrutsPortlet extends StrutsPortlet {
    	protected void doDispatch(RenderRequest request, RenderResponse response) throws PortletException, IOException {
    	if ( !WindowState.MINIMIZED.equals(request.getWindowState()) ) {
    	PortletMode mode = request.getPortletMode();
    	if ( mode.toString().equals("config") ) { // checking for "config" mode. 
    	     doConfigMode(request, response); // if is, call doConfigMode(request, response)
    	     return;
    	   }
    	}
    	     super.doDispatch(request, response);
    	}
    	// code to handle "config" mode. 
    	public void doConfigMode(RenderRequest request, RenderResponse response)
    	throws PortletException, IOException
    	{
    	     super.doService (request, response);
    	}
    	}
  2. Rename the \WebContent\html\configure folder to WebContent\html\config . Note: if you have other markup types with config mode enabled, you should also rename these folders - from configure to config. Click No when prompted to update references.
  3. Open the \WebContent\WEB-INF\portlet.xml file. Look for the Struts portlet. This is a portlet with portlet-class = com.ibm.portal.struts.portlet.StrutsPortlet.
  4. Change:
    <portlet>
    	..
    	<portlet-class>
    	     com.ibm.portal.struts.portlet.StrutsPortlet
    	</portlet-class>
    	...
    	<init-param>
    	     <name>config/html/configure</name>  <!-- if you have other markup - please apply the same changes -->
    	     <value>/WEB-INF/struts-html-configure.xml</value>
    	</init-param>
    	...
    	<supports>
    	     <mime-type>text/html</mime-type>
    	     <portlet-mode>view</portlet-mode>
    	     <portlet-mode>configure</portlet-mode>
    	</supports>
    	...
    	<portlet-preferences>
    	...
    	     <preference>
    	     <!-- if you have other markup - please apply the same changes -->
    <name>com.ibm.struts.portal.page.configure.html</name> <value>html/configure/index.jsp</value> </preference> </portlet-preferences> </portlet> <custom-portlet-mode> <portlet-mode>configure</portlet-mode> </custom-portlet-mode>
    To :
    <portlet>
    		...
    		<!-- change the portlet-class value to the one that you just created -->
    		<portlet-class>
    			my.pkg.ConfigEnabledStrutsPortlet  
    		</portlet-class>
    		 ...
    		<init-param>
    			<name>config/html/config</name>
    			<value>/WEB-INF/struts-html-configure.xml</value>
    		</init-param>
    		 ...
    		<supports>
    			<mime-type>text/html</mime-type>
    			<portlet-mode>view</portlet-mode>
    			<portlet-mode>config</portlet-mode>
    		</supports>
    		    ...
    		<portlet-preferences>
    			 ...
    			<preference>
    				<name>com.ibm.struts.portal.page.config.html</name>
    				<value>html/config/index.jsp</value>
    			</preference>
    		</portlet-preferences>
    	</portlet>
    	<custom-portlet-mode>
    		<portlet-mode>config</portlet-mode>
    	</custom-portlet-mode>  
  5. Save the portlet.xml file.

Return to the main readme file