InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

First Steps for Apache Pivot, Java-based RIA Framework

Posted by Gilad Manor on Mar 24, 2010

Sections
Development
Topics
Rich Internet Apps ,
Rich Client / Desktop ,
Java
Tags
JavaFX ,
Applets ,
Apache Pivot ,
JavaFX Script

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)
Interesting by Markus Johnsson Posted
Re: Interesting by Marian Alexandru Posted
Re: Interesting by Greg Brown Posted
  1. Back to top

    Interesting

    by Markus Johnsson

    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.

  2. Back to top

    Re: Interesting

    by Marian Alexandru

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

  3. Back to top

    Re: Interesting

    by Greg Brown

    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.

    Greg

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.