Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News First Steps for Apache Pivot, Java-based RIA Framework

First Steps for Apache Pivot, Java-based RIA Framework

Leia em Português

This item in japanese


Apache Pivot is an open source project, which attempts to create a modern, rich client development platform in Java. Pivot started off as an R&D effort at VMWare in 2007 and was released as an open-source project in June 2008 under the Apache 2.0 license. Pivot then joined the Apache Incubator in January 2009 and graduated as a top-level Apache project in December 2009. Pivot is currently driven entirely by the software development community.

Pivot is defined as a modern RIA toolkit, based on Java2D and employs the model-view-controller (MVC) design pattern. Pivot applications can be written using a combination of Java, JavaScript and XML (WTKX).

Pivot comes with a GUI library, and a framework for simplifying the creation of GUI applications such as:

Pivot applications can be run either as applets or as standalone desktop applications on any operating system with a Java Runtime Environment (JRE) version 6 or greater (Java 6 update 14 or later is recommended).

Pivot applications are restricted according to JVM security policy. To gain access to extended features such as the Clipboard and File System, the applet or application has to be signed and trusted.

Pivot differentiates itself from JavaFX by allowing developers to build applications in Java, rather than the proprietary JavaFX scripting language. Pivot targets itself as a tool for creating applications, and regards animations and other effects are primarily intended to enhance the user experience of those applications.

The roadmap for the next three versions (i.e. 1.5, 2.0 and 2.1) includes many GUI component enhancements and stabilization. Standing out are:

  • File serialization class for facilitating file transfers in web queries (1.5)
  • A DTD for WTKX in the Pivot distribution and a DTD reference in examples/documentation (2.0)
  • A Pivot hook to javax.accessibility API (2.0)
  • "HTML provider" API, which might be used to wrap the Flying Saucer XHTML rendering library (2.1)

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Interesting

    by Markus Johnsson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Interesting project. But I have some thoughts:

    • Java is a very non-functional language. I have never done any asynchronous development using it but have a feeling it might be troublesome. Then again there are other JVM languages. A default declarative language is a good thing, but all RIA platforms has that.

    • The loading of the Hello World example takes longer than the loading of our entire Flex-based app. Slow startup has been a problem for JVM for a long time, will it be addressed soon? At least it doesn't block the web browser thread during startup.

    • Java has proper threading which is a big plus compared to JavaScript and Flash Player. But Silverlight has this too.

  • Re: Interesting

    by Marian Alexandru,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Didn't notice it when i tried, it loaded fast enough.

  • Re: Interesting

    by Greg Brown,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi Markus,

    Java is just one option for writing Pivot applications. You can actually use any JVM-compatible scripting language if you prefer.

    Re: asynchronous development - Pivot includes a Task class that makes executing background processes much easier than hand-coding them with Threads.


Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p