By trajesh on Jan 23, 2007
The Enterprise class WSRP Open Source Project is in a reasonable shape so decided to do some interoperability
testing with other vendors. Interoperability is a key to any WSRP implementation
and we have done such exercise with most of the vendors for Sun Portal Server
releases in the past. Eventhough the Enterprise class WSRP OSP Project
code base is derived from Sun Portal Server 7.x, there is some considerable
changes in the code to support a light weight driver and to be integrated
in the future releases of Sun Portal Server, so decided to try some interop tests.
Considering that I am behind a firewall, I could test only the consumer interoperability to start with, since there is no need to host a producer machine external to the firewall. The initial try is to point the Consumer implementation to Netunity interop server, here is the WSDL URL
To get the initial consumer creation going, I had to do 2 things which is not different from my previous blog entry on
configuring proxies for WSRP.
- Set proxies for webcontainer (add -D http parameters to domain.xml of glassfish)
- Set the proxies for the admin mbean server (required only if you are running the Mbean server)
- Eg : ant -f run.xml -Dhttp.proxyHost=<proxyHost> -Dhttp.proxyPort=<proxyPort>
The above steps are required only if you are running a consumer behind a
proxy i.e. the consumer can reach the producer directly but it can reach it
only via a proxy server.
Netunity hosts a producer which supports in-band registration with no registration properties, The registration with the producers went fine and I could create a consumer one pointing to Netunity interop server. This test validated that there are no issues with both Registration and ServiceDescription Ports.
The next step was to create remote channels, Upon channel creation was running some basic tests discovered the following issues and fixed them
Issue 1: For any operation that involves saving preferences both the producers were throwing PortletStateChange required. This is obvious since I was accessing the portlets as a authless user. The portlet container driver provides a option to login as a user by providing a FORM based authentication. So this was NOT really a issue, upon user login the issue vanishes.
Issue 2: There were some problem with templates that a consumer generate for rewriting. This problem was easily reproducible with the local producer itself, the fix for this issue is checked in to the code base.
Issue 3: The last issue was a bit hard to crack, since any changes that a users does by editing the portlet did not get saved, nailed the issue to persisting of portletHandle. The fix is to allow persistence of portletHandle for each user. The fix for this is also checked into the code based.
Here is screenshot of the rendered portlets from Netunity producer.
If you are interested in trying the above interop tests. Make sure you have the bits/code after 22nd Jan. The next step is to reiterate the above process for other vendors, will try to post on how stuff goes.