Apollo + Artemis: these Greek twins have got to irk Microsoft
In Greek mythology, Artemis was the twin sister of Apollo … In todays world Artemis is a community project to extend and enhance Adobe’s Apollo by connecting it with Java … the idea is to build very rich and interactive User Experiences for desktop Java applications in traditionally Internet based user interface technologies Flex/Flash/AJAX instead of using traditionally desktop UI technologies like Java Swing.
All of us who have built front-ends for desktop software in Swing/.Net etc. earlier and later moved to developing RIA user interfaces in Flex understand how much simpler things are with Flex. I have done a lot of Swing development in the past and it is truly a very powerful framework that can be used to create anything that you can create in Flex … but, it can get quite hard and cumbersome as the complexity of the interface increases. Enter Artemis …. with Artemis you can develop your desktop based application in Java and create a User Interface for it in Flex/Flash or even AJAX. Isn’t that awesome!!
Apollo has out of the box support for reading/writing Files and windowing but with Artemis it brakes all boundaries, any kind of desktop software could now have a Flex interface. You could now have an Apollo/Flex application start/stop processes, talk to hardware devices on your system, make RPC calls to other process, make system calls … pretty much anything Java can do on the desktop, you can do it with this new combo of technologies but now not only is your user interface easier and faster to build and maintain, it can look a lot better than what desktop software ever have. With this, Apollo is in true competition with Microsoft’s WPF, I wonder what Microsoft feels about that
The Artemis project was started by Adam Flater, Sean Christmann and Tony Hillerson from effectiveUI but their intention is to run it as community project where developers can write and publish the Java and Flex components that make up an Artemis library at the Artemis Website. Any Java library that you have can be converted to an Apollo accessible form using the Artemis bridge. Artemis just like Apollo is still in alpha and currently there are three java libraries present in the project:
- Screenshot Library
- Generic JDBC Connection Library
- XSLT Library

There is a very nice example Apollo application Artemis Screenshot available for download on the Artemis download page …. an awesome demo of the Wii light saber application that was showcased in Apollo Camp can be seen here at Adam’s blog.
I was my self thinking of possible applications that i could build using Java+Artemis+Apollo+Flex and the first thing that came to mind was the very first enterprise application that I ever worked on at EMC during my first job … EMC AutoStart which is a high availability clustering solution that allows you create and mange clusters of as much as a hundred systems in order to ensure high availability of enterprise applications like databases, email servers, banking software etc. The core of AutoStart is very complex and has evolved a lot in over 10 years so maintaining this core left us developers very little time for the Swing based UI. My first thought was that with Artemis AutoStart team could now very easily replace their existing UI with a nice Flex interface and the effort involved would also not be much .. i hope someone from my old team is listening.
So you see … this new project has a lot of scope and I am very excited about it.
To get more information about Artemis .. head over to the project homepage. Many other people have talked about Artemis on their blogs and I am leaving links to some of these posts for your reference:
I noticed something funny on the Artemis home page .. the author of the different news items is called Zues … this is funny because according to Greek mythology Zeus was the father of Apollo and Artemis










April 19th, 2007
Yea, Adam came up with the idea for using sockets to communicate with Java. My contribution was calling it Artemis. We then joked that Adam was the father, and therefore Zeus. The problem is that that may somehow make me Leto. No comment.
Thanks for the coverage here, Mrinal. Just so it’s clear, we’re not about irking Microsoft – just about delivering what works best to the user (in this case end users and application developers). With the tags ’silverlight’ and ‘irking’ – wouldn’t it be nice if there were an Artemis for .Net? Hmm….
April 19th, 2007
Hi Tony,
First of all … Artemis is an excellent idea and hats off to you guys for taking the initiative.
Secondly, I know Artemis is not about irking Microsoft or anyone else .. I just feel that it may do so as it opens up a brand new scope of competition for WPF. I do apologize if you feel that I’m spreading the wrong vibe. Artemis for .Net sounds equally exciting.
Since we’re on the topic … I have a question .. How exactly do I convert a Java library to an ActionScript library using Artemis? … I haven’t been able to find any documentation on this, and I’m sure everyone who is reading this article would be as interested in knowing about this as I am.
April 20th, 2007
Hey Mrinal,
I think we’re on the same page about MS. We’re glad you’re interested. We do want it to compete with WPF – that’s exciting to us because we love the technologies involved. Artemis for .Net is a very interesting possibility because of some of the glaring omissions it sounds like Silverlight has.
As for converting libraries, that’s not what happens, you write a java part and an actionscript part. The Actionscript part (a .swc) is used at compile time, and the Java part is used at both runtime and compile time.
We know that documentation is important. Right now it’s a bit of a shoemaker’s children problem – we’re trying to develop the first libraries as proofs, and then next worrying about getting others developing libraries.
April 20th, 2007
When I said convert, I presumed there might be some sort of a tool to generate stubs on the ActionScript side given a Java library …. I should start digging into the existing libraries .. that might help me get a better understanding …. meanwhile it would be great if you guys could post a small tutorial somewhere which explains step by step what to do if we have some Java code that we want to use inside of an Apollo application.
April 20th, 2007
Code generation is something we definitely want. We’ve got ideas for a few tools – like ant tasks or maven plugins and an eclipse plugin.
The next things on the list are new sample libraries, improvements to the core, and tutorials. Keep watching the space!
April 20th, 2007
Oh I’m watching the space very eagerly and with a lot of excitement.
You keep up the good work
January 26th, 2008
What is the status of this project? Its sounds interesting
February 28th, 2008
Is this project dead? No real movement by the looks of it since April 2007
February 28th, 2008
It’s now being revived as Merapi by Adam Flater and the guys http://adamflater.blogspot.com/2008/02/meet-merapi.html