Java on the client, Flash, mobile

Reader Alex posted this comment on my Java on the client…again post (I’m only quoting Alex’s last paragraph). This is a very interesting part:

For good or ill, the debate is becoming moot as mobile takes over. The future of “client-side” Java is most likely on Android. What remains on the desktop will either be in the browser or split among increasingly irrelevant technologies like Swing, .NET, and Flash. The degree to which Sun/Oracle has screwed up Swing at this point is truly epic.

I think Flash is safe on the desktop for now. I mean, we used Flash for Tiggr prototypes simply because it was faster for us to get where we wanted today. (We will be looking at HTML5 sometime this year, though.) However, moving forward I think there will be more and more pressure on Flash. I know that for some applications, it’s still much simpler or even “better” to use Flash, but, if HTML5, JavaScript and CSS can be used in 90% of cases, why use Flash? It’s interesting, a few years ago I thought that JavaFX was the challenge to Flash. I was wrong. Hey, you never know, maybe JavaFX 2.0 will finally turn out to be that technology.

On mobile, the situation is very different. I just don’t see Flash going anywhere in that area today. Flash on mobile kind of feels like JavaFX on the desktop – people talk about it, but no one uses it. The big battle between Apple and Adobe last year – does anyone remember it today? Does anyone miss Flash on mobile devices? I have been using Android for the past six months, and not once did I miss Flash. Just once, I accessed a news page with embedded Flash video.

With iOS being the dominant platform, most content providers adapted by producing either a native app or a Web app (HTML). There is a huge benefit to creating a Web app. You create one app and cover all the platforms: iOS, Android, BlackBerry, Windows Phone 7, and webOS. BlackBerry is saying their devices support (or will support) Flash, but it’s probably just a gesture to show that they are different from iOS as they continue losing the battle against iOS and Android.

With a large number of smartphones and tablets coming out this year, it will be interesting to see how this develops. Perhaps an update in January 2012.

New Exadel Flamingo 2.2.0 is now on

After months of promising we have finally moved Exadel Flamingo to and released version 2.2.0. is our community site for hosting open source projects. Flamingo is a light weight framework for connecting rich web and mobile user interfaces to enterprise back end.

Click on image to enlarge

Flamingo connects Seam, Spring, and Java EE 6 (soon via CDI/JSR299) with the following user interfaces:

  • JavaFX
  • Flash
  • iPhone/Android
  • Swing
  • JavaME

Version 2.2.0 is updated with Hessian 4 and JavaFX 1.3 support.

Server-side components, methods or services can be easily invoked from the above listed clients with minimal code. Flamingo provides the following features:

  • CRUD tools
  • Server-side integration
    • Calling server components/beans
    • Context variable binding/updating
    • Conversation support
    • Validation (Hibernate Validator)
    • EL support (Expression Language)
  • Server-side push
  • Client push (off line applications)

Click image to enlarge

As you can see from the image above, no matter what client you are using, invoking a method in your enterprise applications looks very similar which allows for great reuse.

How to get started?

  • Download Flamingo from
  • The following are good resources to get started or learn more about Flamingo.
  • Check out the recent Enterprise JavaFX and Seam series. This series shows most server integration features in separate post and easy to follow examples.
  • We want to hear your feedback, please use project Jira or the forum to report bugs or any features you would like to see.

Mobile Enterprise Applications with Exadel Flamingo

The Mobilization of Enterprise Applications with Exadel Flamingo article on Also check out Flamingo Q&A.

Exadel Fiji: new forum, issue tracker, JavaFX support, open source soon

Exadel Fiji extends JSF by allowing the use of Flex with JSF components and within a JSF page. It comes with ready-to-use charting components based on Flash as well as universal wrapper which allows to wrap any Flash component as JSF component.

We are working on Fiji version 2.0 which is going to be open source and also include a new tag to wrap any JavaFX applet as JSF component. We are going to host Fiji on site. Work is still in progress but we have already made some changes to make it simpler for you to get involved. We now have a new Fiji forum on (moved from Google Groups) and an issue tracker (Jira). This will enable you to request new features and enter any bugs you find. Once your register on, you will be able to post on the forum and Jira.

Quick start with Fiji – RichFaces project for Flex template

I created a Fiji template project which you import into Eclipse, deploy and run. The applications demonstrates a number of Fiji charts and as well fiji:swf component which lets you import any Flash component into your JSF page.

What you need to do:
1. Download Fiji template.
2. In Eclipse, select File/Import/General/Existing Project Into Workspace
3. Click Next
4. Check Select archive file radio button and browse to the downloaded file.
5. Download Fiji from and add fiji-api-1.x.x..jar and fiji-ui-1.x.x to WEB-INF/lib directory in the template.
6. One last step is to deploy, I’m sure you know how to do it

A few notes:
– I’m using RichFaces 3.3.1 RC1, you can download a newer version if available.
– I tested the application with Tomcat 6

Fiji: RichFaces project for Flex

Check out Richfaces for Flex project, know as Exadel Fiji. Fiji allows to use JSF and Flex components together on the same page while binding Flex components to standard JSF managed beans. Fiji also provides 7 out-of-the-box Flash-based charting components.

Suppose you need to embed a Flex chart in your JSF page, to deliver richer content. This is all you need to do:

JSF page:


Managed bean:

public class BarChartBean {
  public BarChartBean() {
  private Integer[] data;
  public Integer[] getData() {
	return data;
  public void init () {
	data = new Integer[5];
	data[0] = 5;
	data[1] = 2;
	data[2] = -3;
	data[3] = 10;
	data[4] = 9;

You will get this:

The most important thing is that you bind these components to standard JSF managed beans (or Seam components).

More Fiji resources

Fiji product page
Fiji demo
Fiji charting components (JSF, Flex and Elections)
Fiji article at

Two articles in Top 10 on of 2008

Two articles I wrote are in JavaLobby’s Top 10 Articles of 2008 by James Surgue. Thank you, it’s nice to be in top ten.

  1. Interview: John De Goes Introduces a Newly Free Source Code Editor
  2. An Introduction To JBoss RichFaces (by me)
  3. The Best Java Tools You Never Knew Existed
  4. Using JSF and Flex Components Together (by me)
  5. Ten Amazing Java Applications
  6. Looking Forward to JPA 2.0
  7. Tomcat Today, GlassFish Tomorrow?
  8. Is Hibernate the best choice?
  9. Google Android Tutorial
  10. Pathway from ACEGI to Spring Security

The placement is based on number of clicks the article received. If this article was published today my An Introduction To JBoss RichFaces article would take first place as it has 42,012 clicks while Interview: John De Goes Introduces a Newly Free Source Code Editor has 41, 380. Oh well, next year :).

Early next year an article on how to use RichFaces with Spring will be published.

Fiji is free until December 31 – JSF and Flex together

Fiji is free until December 31.

Fiji allows to use JSF and Flex components together on the same page while binding Flex components to standard JSF managed beans. Fiji also provides 7 out-of-the-box Flash-based charting components.

Fiji resources:

Fiji product page
Fiji demo
Fiji charting components (JSF, Flex and Elections)
Fiji article at