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.

Merapi Project : A Bridge Between AIR and Java

Posted by Jon Rose on Feb 23, 2009

Sections
Architecture & Design,
Development,
Enterprise Architecture
Topics
Rich Internet Apps ,
Web 2.0 ,
Rich Client / Desktop ,
Java
Tags
Adobe ,
Adobe Integrated Runtime ,
Java SE ,
Flash

Adobe Flex and AIR have strong ties to Java in their history, including an Eclipse based IDE, and full feature data services products built in Java to run in Servlet containers.  However, even with the strong ties to the Java Platform, Adobe AIR has no native way to use Java on the client.  In addition, AIR applications have fairly limited access to local resources when compared with other desktop platforms.  

Generally speaking, Adobe has avoided adding native operating system features and local access for philosophical reasons – not technical.  Adobe’s main apprehension is that such additions would make portability across operating systems more cumbersome.  Although Adobe’s concerns are reasonable for a platform vendor, the community has responded by offering its own solution in the Merapi Project.  

The Merapi’s Project website describes the bridge this way:

Merapi is a Java™ application, intended to run on a user's (client) computer. Merapi connects other Java™ applications on the user's computer to Adobe AIR™ applications that the user has installed.

It isn't magic. You have to develop your Adobe AIR™ application in a way that allows it to connect to Merapi. Merapi acts as a "middle man", passing objects between your AIR™ application and your Java™ application.

Using Merapi, Adobe AIR™ applications can "talk" to other software that the user has installed on their computer. In addition, Merapi allows AIR™ applications to serve as a user interface to just about anything that a Java™ application can do on a user's computer.

Another great summary of the project:

Using Merapi, Adobe AIR™ applications can "talk" to other software that the user has installed on their computer. In addition, Merapi allows AIR™ applications to serve as a user interface to just about anything that a Java™ application can do on a user's computer.

Merapi is another great example of the community filling the gap where vendors are unable to offer features desired by developers. To learn more about Merapi, check out this Step-by-Step guide and the following overview.  In addition, here is a blog post from one of the contributors, Adam Flater, in early 2008 introducing the project.

Sounds good ... by Mark N Posted
Interesting but.. by norf grond Posted
Re: Interesting but.. by Nate Ross Posted
Interesting Project by Jose Pena Posted
  1. Back to top

    Sounds good ...

    by Mark N

    But why not just use JavaFx and/or Java Webstart then?

    I do plan to take a look at it though. :)

  2. Back to top

    Interesting but..

    by norf grond

    Neat project but I would imagine as AIR gets more use, Adobe will begin to address lacking features in the runtime. Until then this project will likely serve people's needs to extend to more complex desktop functionality, but I agree with the previous poster. If you have to do more complex things than AIR provides why not just create a 100% Java app or JavaFx app?

    The big issue I see with this project is that AIR apps are simple to install, now your installation process becomes more complex because now you have to bundle both a Java app and AIR app together, Java app likely wrapping the AIR app because the AIR platform does not currently support executing anything locally (other than launch through a browser)

  3. Back to top

    Interesting Project

    by Jose Pena

    I'm looking for a project to connect Java and AIR in the same machine I think them have a very good idea, go a head guys ..!

  4. Back to top

    Re: Interesting but..

    by Nate Ross

    The biggest reason for the development agency I work for to use AIR is that it is so quick and simple to develop Flex applications. Plus, Flex interacts extremely well with Adobe design products like Flash, Photoshop, Illustrator, etc. With just a couple plugins, your designers can create skins and Flex components with no development knowledge. Ultimately some additional time bundling Java and AIR together is worth it for the development gains that Flex provides.

    I wrote the Step-by-step guide referenced in the article for bundling the two applications together and have experience creating Windows and Mac installers that use Merapi. If you have any questions, feel free to let me know. I would love to help :)

Educational Content

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.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?