Wednesday, May 9, 2012

Virgo Tooling M4

I'm happy to announce that the Virgo Tooling M4 release is available. If you just want to find out more about that, skip ahead to the section below... But I realized that it's been a long time since I've posted and thought I'd use this opportunity to update folks on what I've been up to and give some background about the Virgo Tooling effort.

I've been really focussed on Tasktop projects during the day and haven't had much time to surface out into the broader open source development world. I'm also using the excuse of having a real job to try to have a life -- like spending time with our 1 1/2, 3 and 10 year olds and giving mom a break every once in a while, having time to reengage with meditation practice, and even spending a couple of hours a week getting our model train layout built. Basically, trying to ween myself away from the 24-hour a day developer mentality that seems to creep in when you're working on your own. One of the things that I've really appreciated about being at Tasktop is the family focus here; generally people actually go home at a sane hour of the day -- all too rare in the startup world. So I've been working at calling it a day around six (OK, sometimes I don't stick to that) and I've committed myself to no more late night blogging sessions! Still, I'm going to try to squeeze in some more blogs now that I'm settled in a bit. And this one happens to have an official purpose -- I want to share where we are with the Virgo Tooling effort.

Interestingly, one of the first things I started working on after joining Tasktop was Virgo Tooling; a perhaps less known aspect of Tasktop is that we partner with other companies to support Eclipse-related tools development efforts that aren't neccesarily Task related. (I have to say that that probably has something to do with the excellent reputation Tasktop engineering has in the Eclipse community. If you're interested in joining us, I should mention that we're hiring.) And we have a great relationship with the folks at SpringSource, now part of VMware. Leo Dos Santos, Ducky Sherwood and others have contributed a lot to the STS and other tools.

Now, I've never really been a web-centric developer, so I hadn't been exposed to all of the great tools that SpringSource has provided over the years. VMware and SpringSource have very genorously donated big chunks of these tools to the Eclipse project. We're helping to take the foundation provided by the Spring Source tools and integrating them with the entire stack of Eclipse runtime, web and plugin development tools.

But Virgo is definitely not just for web developers. In a nutshell, it allows users to run OSGi bundles easily from web services (but it does a lot more than that). What that means for Eclipse developers is that we now have a way to easily deliver all of the features our plugins provide outside of the Eclipse UI box. Because of that capability, Virgo is the one part of the stack that I did have prior experience with. I spent a bit of time working with the Virgo runtime when I wanted to deploy some EMF editors as RAP applications. I was having a hell of a time getting this to work on a bare Tomcat server, and Virgo made all of that easy. As I said I said in this post last year, "I haven't been that impressed by a technology that "just worked" since the first time I built an EMF model and editor".

A lot of the work that Leo and I started out on was a bit mundane, really -- sometimes there are things you just need to do in order to move ahead. One of the biggest things we've taken care of is excising all of the pesky dependencies from Virgo to the originating Spring Source tooling. That turned out to be a really big job, and it was kind of interesting work hunting all of these pieces down and finding replacements for them or in many cases, removing redundant or non-relvant code altogether. There is something rewarding about making code smaller and more modular. Naturally, we also worked a lot on updating features, branding, etc.. -- all of the necessary overhead that comes along with being an Eclipse project.

But after tackling all of that, we've had some time to make some improvements that you can actually see. Here are the biggest changes that you'll see in the latest version. (By the way, wondering what happened to M3? There wasn't one -- we're synching our milestones up to the Virgo Runtime releases, so we skipped it.)

What's new in M4

Improved Server Support

Virgo now supports almost all versions and types of Virgo installs, including older versions of Virgo and Tomcat, Jetty and Kernel installations. Best of all, you can now define servers using a single Server Runtime and the tooling will automatically discover the appropriate server configurations. You can even change server installations and versions for server runtimes without having to maintain any server settings.


We've provided a number of new features aimed at improving the user experience. We've been giving more transparency and leverage into what's actually happening on the server. Right now, interactions with the server involve frequent shifts back and forth between the Eclipse IDE, the native file system and the command line. Our ultimate goal is to have tools powerful and complete enough that you can work with the server without ever having to move out of Eclipse.

Virgo Perspective

You can now get your own perspective on Virgo. We've organized it to support runtime exploration but it should be usable for general development as well. Please give us feedback on the overall setup; we'll incorporate the feedback in future releases.


When we talked to current users of the Spring Source / Virgo tools, one of the things we discovered is that there were a lot of features that they wanted to have us implement that actually already existed, but in many cases were buried somewhere -- in many cases on a page in the server editor. So we're providing some of the information and tools that are provided in the WTP-based Server Editor as stand-alone views and enriching it. The idea is provide better insight into what's happening on the server side. Some of these features involve significant changes to how server resources are treated and we'd appreciate your feedback on how well they work for your usage scenarios. We'll use these changes as a basis for further enhancements.
Outline View
As a first take at helping users find what they're looking for, we provided an outline view that gives quick access to server artifacts.

Artifacts View
A new view supports transparent access to runtime artifacts. Currently, you can view bundle jars and libraries, but we'd like to support plans, pars, properties and other artifact types as well. But the real news is what we've built behind this -- Virgo runtimes are now exposed as Eclipse projects, giving you full access to the contents of jars, including classes. You can even use JDT tools like the Type view on Server side jar contents.

All of the new views are supported through the Eclipse Common Navigator Framework (CNF), which means that the views are highly configurable, and we've provided buttons to allow you to easily toggle on and off artifact types and present the artifacts in a tree or list view so that you can see all installed jars in one place.
Servers View
And because the views are all supported through CNF, you can easily customize them. For example, currently you can access all of the bundle information from the server view -- but we'll probably disable that by default in the release. In any case, you can set it up anyway you want by adding or removing the content provider. Again please let us know if you think of a way that we can improve the user experience for you.

Documentation and Help

The complete virgo documentation set -- including the Tooling, Programmer and User's Guide as well as the Wiki pages -- is now included as Eclipse Help.

Installation Process

Virgo Tools can now be installed from a single update site location.


  • Extensive bug fixes and re-factorings.
  • All Remaining Spring Dependencies have been removed.
  • Updated to meet Eclipse branding, packaging build and testing standards.
  • And yeah, there are still a lot of open bugs.

Check it out

So what are you waiting for? Get the milestone at You can download a Runtime to go with it here: (Hey, auto-provisioning of a runtime -- now that would be a cool little feature..)

No comments:

Post a Comment

Popular Posts

Recent Tweets

    follow me on Twitter