Thursday, January 10, 2008

Of ICEfaces and Portals

I don't know how many times I've started a free blog account with the intention of joining the unwashed masses in carving out my own niche on the web. I usually just end up staring at the screen, unable to type because I figure the first blog entry needs to be internet-shatteringly funny/informative/glib/hip/smart. Then I realize I don't have a top 10 list or anything else to catch the attention of millions of people just waiting for the next big thing. So I log back off and go see if I can make my kids do something spectacular that I can write about. Never works.

But now I have some motivation. It's work related so I need to sprinkle some information about what I do, who I do it for, and so on. For those of you not interested in software development, specifically Ajax, JSF (JavaServer Faces), and ICEfaces, please proceed to the next tab on your browser where important galactic events await.

If you are interested in the technical wonders I've mentioned, then I'll provide some background. I'm a Senior Developer at ICEsoft, the company that directs the open-source ICEfaces project. ICEfaces is an extension to JSF (Java's component framework for building web application user interfaces). ICEfaces extends JSF by seamlessly adding support for Ajax. ICEfaces also comes with a swack of components that take advantage of this integration. The benefit to you, the developer (which I have to assume at this point is true since you're still reading) is that you get the Ajax stuff for free. You can develop normal JSF-based applications and the components take care of the Ajax for you - which is what polite components should do.

Now that's all the general stuff, but I work specifically on getting ICEfaces to run in Java portals. If this sounds glamorous and exciting, then this blog may make your day. Maybe not today but eventually. If not, then feel free to excuse yourself and check the next booth where they are showing the fastest and easiest way to change a tire.

I have a lot of potential material about my experience with adjusting ICEfaces to work in portals. Not all of it is good but then again, other people's pain can be entertaining. For now I will mention that we have ICEfaces running, more or less, with Liferay, JBoss Portal, WebLogic Portal, Pluto, and JetSpeed 2. Some of our customers have had some success with WebSphere Portal and perhaps others. If you are in that crowd, add a comment and tell me how it's going.

We're doing our best to support as broad a range of portal containers as possible but it's a challenge. One of the tough things about bringing portals into the Ajax Age is that the portlet specification is very "lowest common denominator". Portal vendors originally had their own proprietary offerings and the act of getting a standard specification together was more of a reverse-engineering exercise by the looks of it. That meant a lot of things weren't specified - which makes an interesting environment to wedge an Ajax framework into.

If you are interested in this stuff, get a conversation started in the comments. If there's sufficient interest, I'll do my best to keep the blogs hot and freshly baked.

4 comments:

Neil Griffin said...

Derek,

Congrats on all the great work you and the team at ICEsoft have done to make ICEfaces work within portals. The Liferay community has benefited greatly from the ability to create ICEfaces portlets.

One of the greatest features that ICEfaces brings to the portal world is the Direct2DOM view handler. When combined with the new <ice:portlet/> tag, an ICEfaces portlet can navigate from one JSF view to another without invoking a full page submit/refresh, which in turn does not disrupt the user experience or any of the other portlets on the page.

Neil

Marc the Elliott said...

Hi Derek,

I really like that portals are getting more attention from JSF developers. Portlet development has been a real struggle. You mention that some customers have been able to run ICEFaces in WebSphere Portal. I have tried this with previous versions and have had poor results. The classpath issues are a real bear and I haven't been able to get an ICEFaces portlet running. Any tips on how to get this going? What I would love is if for each portal platform, ICEFaces would publish a "Hello" world WAR to get us started. Sometimes a portal vendor will not make their deployment requirements as clear as you would like.

Deryk said...

Marc,

Thanks for commenting. You've doubled my blog traffic.

First of all, I'm not sure how far back you tried to get portals going with ICEfaces but our current 1.7 release (which is only a few weeks old) has MUCH better support for portals. It was actually one of the biggest things we emphasized during the release cycle so you may have more luck now. Our Developer's Guide has an entire section on working with portals which includes the necessary configuration changes and a new component for wrapping portlet content - ice:portlet.

Unfortunately, WebSphere Portal is still not officially supported. Mostly this is due to community and customer demand. To get the business to notice, the community has to make noise in the forums. Of course the noise made by paying customers is even louder ;-).

Even though we don't officially support it, there is a forum thread where people have been successful in getting ICEfaces portlets running in WebSphere:

http://www.icefaces.org/JForum/posts/list/6129.page

Unknown said...

That was remarkable post. I like to read articles that are edifying for they enriched my mind with different knowledge that makes me a better person. These articles especially about recent events, technologies, news, tips and technical skills are the topics that I adore. Keep it up and more power to your website. I look forward for your next article.Thanks Jennifer Liferay