Friday Feb 13, 2009

Sun GlassFish WebSpace Server consumes SAW API

GlassFish Portfolio

Sun GlassFish WebSpace Server 10.0(henceforth referred as "WebSpace" was released as part of GlassFish Portfolio launch.

Traditionally, performing tasks on multiple portals is tedious and inefficient as enterprises adopt back-end business processes and must then continually manage them. Hence, demand has steadily mounted for the capability to perform tasks on just the portal itself instead of on multiple sites with a single-point solution; that is, a solution that not only handles the process interactions but also enables end users to seamlessly perform tasks as "hooks" in the process. Bear in mind that automation of business integrations requires human steps on portals, often accomplished through proprietary applications. By integrating human workflow into portals, you ensure that all the tasks, whether performed by humans or by software, occur in one place.

WebSpace consumes the SAW API to provide this functionality. The Simple API for Workflow(SAW) is intended to offer a generic workflow api to perform human workflow interaction with various workflow engines. SAW API is an API for performing task management(update(e.g. approve/reject), delete, reassign, escalate etc.) created in a human oriented workflow. The Workflow can be defined in various languages supported by the workflow engines. With SAW API, portlet developers can manage tasks created via various instances of workflow definitions defined in languages specific to Workflow engines.

Currently the SAW API has implementations for Sun Java Composite Application Platform Suite, jBPM, OpenSymphony OSWorkflow.

These implementations are showcased by means of:

  1. Workflow Portlet available in Portlet Repository(works with saw-impl-jcaps).
  2. Workflow Portlet available as part of Liferay Plugins(works with saw-impl-jbpm)
  3. Expense Report Portlet(available as part of eval bundle, works with OpenSymphony os-workflow)

Details about '1' are available here. Stay tuned for details around '2' and '3'.

Watch out saw site for screencasts, user guides, docs and other details.

Friday Mar 14, 2008

OpenPortal @ Glassfish Day Hyderabad

SunTechDaysHyderabad The three days at Sun Tech Days walked through an interesting keynote by Rich Green(Executive Vice President, Sun Microsystems). Rich described how JDK, MySQL , xVM, GlassFish, NetBeans, Solaris and many other similar offerings provide a comprehensive suite of products that cover the entire portfolio of software. He talked about how Sun Campus Ambassadors, out of which around 20% being from India, will play a major role in the future. He also focussed on reusability.


The first day also saw a concert hosted by a popular rock-band in India, namely "Euphoria".
The second day hosted a lot of talks especially the ones around masshups, SOA, BPEL interested me. On the Glassfish day I presented the talk on wholistic features of "OpenPortal" saw an attendance of 400+ developers. Extra chairs had to be ordered to accomodate the crowd in the auditorium which had a capacity of around 400. Have a look below at the Glassfish Day Audience.


I was anticipating lot of questions comparing OpenPortal with other portals, however folks were more interested around the Enterprise features of OpenPortal.
Specifically lot of interest around SAW and jBOSS. There was an interesting use case around WSRP. Interest was expressed around BPEL, OpenESB Integration with OpenPortal, Eclipse plugin equivalents for PortalPack and SAW/Mirage NetBeans plugin.
Many of the audiences openly appreciated the talk by inclining to contribute towards some feature or the other or to download it.

If anyone's watching over OpenPortal or ThePortalPost hits, I am sure they would have increased after Friday.

Me Presenting OpenPortal @ Glassfish Day


Monday Feb 25, 2008

Building and Installing Liferay Source Code on GlassfishV2

GlassfishLiferayI came across various articles to deploy liferay on glassfish. Thanks to them I could figure out the exact way on how to do it. Here is a step by step procedure which I tested twice and it works. If it does not work for you , let me know.

Here are the steps: 

  1. Download Glassfishv2(b58g). Install it
    • java -Xmx256m -jar glassfish-installer-v2-b58g.jar
    • ant -f setup.xml
  2. Download mySQL and mySQL connector jar.
  3. Install mySQL (Refer installation specifics below in Notes section)
  4. Create database 'lportal' with user 'lportal' and grant system/administrator level privileges. This is a sample default user. One can create other users and try it out by modifying Liferay Source Code. For Details refer mySQL Documentation
  5. Alternatively, follow these steps
    1. Login to mysql as 'root' and create database lportal;
    2. use lportal;
    3. create user lportal;
    4. set password for 'lportal'@'localhost' = password('lportal');grant all privileges on \*.\* to 'lportal'@'localhost' identified by 'lportal'
  6. Start Glassfish and login to the Admin Console.
    • Go to Resources/JDBC/Connection Pools and create a connection pool to connect to the lportal database.
    • While doing so, one can specify the database to connect to.
    • Go to Resources/JDBC/JDBC Resources, create a JDBC resource with the name jdbc/LiferayPool, and associate it with the connection pool created in the previous step.
    • Stop Glassfish
  7. Download Liferay Source Code. Unzip it
  8. Download apache-ant-1.7.0. Extract it
  9. set ANT_HOME to apache-ant-1.7.0
  10. Use JDK 1.5 or above and set it in Path.
  11. Go to Liferay source code directory and modify Make sure you specify the directory in which glassfish is installed and NOT the glassfish home. For example, if glassfish is installed in f:\\glassfish, then in the, please specify f:/(forward slash on Windows). The name of the glassfish folder has to be "glassfish". Comment tomcat entry :-)
  12. In , please specify the glassfish version viz. v2 or v3. Please change it to reflect as per the glassfish download that one has.
  13. Go to Liferay Source Code Directory and run ant -f build.xml all
  14. Once, build is successful, the build process will create the necessary jars and copy them to Glassfish Domain.
  15. Copy mysql connector jar in the glassfish/domains//lib
  16. Restart Glassfish. Wait for 3 minutes, since Liferay compiles JSPs. One can turn off JSP Compilation if required.

Hope this helps!!! Please try it out and let me know if we need to modify these steps anywhere.

 Start using Liferay with Glassfish!!!


  1.  The build might delete the existing glassfish domains directory and create a new one. Hence, do take necessary backup. These installation steps are on a fresh glassfish installation.
  2. The build might fail due to some minor Java errors. One might have to modify them and then run the build. I observed one such error.
  3. For those who want to get quick started without getting their hands dirty,but want to do it with Glassfish, there is also a Liferay bundle with Glassfish available for download here
  4. Install mySQL with detailed configuration. That way one will have better control especially multilingual etc./firewall blocking/unblocking
  5. If you have tried an unsuccesfull install of mySQL and unable to install again, please uninstall, delete the MYSQL installation directory and re-install MYSQL
  6. When MySQL is successfully installed, log on as "root" and create user lportal with lportal(password) and grant privileges.
  7. If you intend to create connection pool faster, you may follow alternatively the below method:
    1. Create mysql_liferay_connection_pool.xml
    2. Add the following contents to it
    3. <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE resources PUBLIC
      "-//Sun Microsystems Inc.//DTD Application Server 9.1 Domain//EN"
      "\\\*[\*]"> <resources>
              <property name="user" value="lportal"/>
              <property name="password" value="lportal"/>
              <property name="url" value="jdbc:mysql://localhost:3306/lportal"/>
    4. Now run following command in glassfish/bin directory:
      asadmin add-resources <location-of-resource-file>/mysql_liferay_connection_pool.xml

Wednesday Nov 14, 2007

Glassfish Day @ Beijing

Participants flocked together to attend the Glassfish Day . I had the opportunity to talk about OpenPortal  at the Glassfish day held in Beijing. It was a wonderful bunch of participants. Do also check out Arun Gupta's blog and Carla King's blog on the same.

I talked about OpenPortal, its decoupled features, Web2.0 features, There were many questions asked about OpenPortal at the end of the talk and here is the excerpt about some of them:

  1. CMS Story
    • Check out Project Mirage. CMS  is available in the form of infrastructure APIs, Netbeans tooling and out of the box portlets(Article Management, Document Management and Custom Content Definition Portlets). CMS is being integrated with JSR170 repository e.g. Apache JackRabbit via the OCM mapping.
    • The project deliverables will be in terms of several individual smaller sub projects some of which may come in under some different projects. The deliverables from this project will be consumed by the OpenPortal project to provide CMS functionality to the portal product. The current plan is to provide in terms of deliverables :
      • CMS Infrastructure and Generic API based on the Apache Jackrabbit implementation of the JSR-170
      • CMS Tag Libraries which developers can use to create web applications/portlets that can leverage the features offerred by the content repositories.
      • Sample portlets which will be a part of the Portlet Repository. The sample portlets will showcase how to use CMS Infrastructure/API's to store/retrieve/update structured and unstructured content to the JCR.
      • Tooling Plugins for developer IDE's which empower the developer to use the Mirage API and Tag Libraries with the greatest of ease. These will be available under the Portal Pack Project.
  2. Comparison with other portals
    • Powerful CMS Story(independent of a JSR 170 compliant Repository)
    • Identity Based Content Delivery is also one of the powerful features of OpenPortal
    • Decoupled features viz. SAW, CMS , DesignView, Delegated Admin are some of the contrasting features
    • Secure Remote Access
  3. Difference between OpenPortal and OpenSource Portlet Container
    • OpenPortal and Open Source Portlet Container(OSPC) are two different projects and different consumables. OpenPortal consumes OSPC to cater to the lifecycle of a portlet(JSR 168 or JSR 286). OpenPortal is the entire Portal itself. A Portal in its entirety offers variety of different value added features viz. Security, Identity Based Content Delivery, CMS, Workflow, Collaboration, Communities etc. An OpenSource Portlet Container is a portlet container helping to render the life cycle of a portlet(JSR 168/JSR 286).
  4. Can OpenPortal work with different applications for enabling SSO
    • Yes, there is an SSOAdapter available which can be extended to enable SSO for different applications
  5. How can we contribute to OpenPortal.
    • Go to OpenPortal
    • Check out Community Wiki
    • To get involved check out GetInvolved Section
    • To subscribe to mailing lists, see the mailing lists or subscribe to the mailing list
  6. What are the various URLs specially portlet-repository
  7. Want to pitch for OpenPortal, but unable to download
    • Send Request to with exact problems faced
  8. Only available for Glassfish?? Not for Apache Geronimo
    • Currently only Glassfish
  9. How is OpenSource Portlet Container available?
  10. How to develop a simple login portlet.

And as time passed by , we came to the end of a wonderfully hosted Sun Tech Days(thanks to the organizers)






« July 2016