Archive for October 2007
At the Eclipse Summit 2007, Jeff McAffer gave a presentation [link to slides not available yet] on what has been happening with Equinox. I missed the talk itself, but later on I had
lunch with him, Naci Dai of WebTools and Jerry Preissler of Swordfish and we talked about the Eclipse Provisioning Project, aka p2
p2 is a framework which is all about configuring things and putting them somewhere. That’s as generic as I can make the definition 🙂 In the example on the website, p2 is being used to move bundles around. The SoaTools, Swordfish and WebTools projects already do this kind of thing, and we have a set of deployment frameworks which allow us to configure and deliver things (WAR files for example) to different places (server runtimes for example). That’s
why we are interested, especially since there are visible moves in the direction of OSGi based runtimes for hosting Services .
I’m just at the point where I need to drill into the information on the web. As per usual, I’m confused about how p2 and Buckminster appear to do exactly the same thing. And I want to see how p2 matches up with the SoaTools SOAS component. If we could do something around extending p2 (if appropriate) then we could reduce the STP workload a bit. I guess that WTP and Swordfish are thinking the same thing.
I feel a workshop coming on here 🙂
A tangential point: as far as I know, and I am open to correction here, the p2 project was brought into the Eclipse ecosystem as an effort to replace the aging Update Manager mechanisms. Certainly over the course of the last couple of years, many interesting behaviours of the UM have come to light, but it might have been a good idea to fix those in conjunction with starting a new development effort. As per usual, if you have patches, feel free to open a bugzilla 🙂
Another tangential point: there is a project proposal called Riena which will also be interested in the p2 capabilities. I don’t yet understand what Riena is trying to do – all I know is that it is about ‘smart clients’, the committers are mostly tall, and that they all wear the same teeshirts. When I find out more I’ll let you know. In the meantime visit the top-level page on wiki for p2 for details.
Eclipse users and developers know that the Eclipse platform is a bit of beast – there is just so much in there that if you don’t get the chance to poke your head out of your own personal Eclipse-interaction light cone, you can miss out on some cool stuff. And it turns out that the best way to do that is to come to these kind of conferences 🙂 Here’s some things I found out about yesterday.
Select something in the UI, hit Alt+Shift+F1, and you get a window containing an introspection of the current widget/part that you have selected. Check out the PDE Incubator page, and a blog entry from Chris. If you are using Eclipse 3.4M2 or later, you will find this feature already built-in.
I use Checkstyle in most of my project work, and it and I have an uneasy relationship. The sort of one where the dishes get broken and people come around to bring the pets away. I have always whined that if Checkstyle is so smart, why doesn’t it get rid of that trailing space it spotted for me and stop bothering me? Well, it can’t do that, but Eclipse Clean Ups can. Woot!
A Clean Up is just a collection of refactorings that you use regularly on your code to keep it squeaky. You can run ’em manually, or have them run automatically when you save a Java file. Go to this developerworks article to find out more.
If you are familiar with the Emma Project then you will have probably guessed that this is a test coverage tool for Eclipse, based upon Emma. I’ve always found test coverage to be an invaluable tool for showing you where the great, gaping, black holes of non-deterministic behaviour reside in your code. There’s a lot of tools that can do coverage, and there are Eclipse integrations at varying levels of quality. What I liked about EclEmma is that it is quick and straightforward to use on a single Eclipse project, and gives me the results fast. Although the results are not always welcome 🙂
Update: Jeff McAffer’s Eclipse Update Talk [pdf link] has details of Plug-in Spy and Clean Ups.
Just got a link this morning to the C.R.A.P. metric and the crap4j Eclipse plugin. This humourously-named approach mixes up cyclomatic complexity and code coverage to give a number that is your code’s CRAP index. Generally speaking, you can lower your CRAP index either by adding automated tests or by refactoring to reduce complexity, or both.
Apparently crap4j can also estimate your CRAP Load (we’ve beaten this one to death – ed.), in which it gives an indication of how many tests you will need to write to reduce the CRAP index to less than an arbitrary bar of 30.
Update: tried it out, and it seems interesting – I can understand the concepts immediately and it has an amusing toilet paper icon on the menu. Here’s a screenshot of the CRAP Report that it produces.
In the case of this anonymous component, you can see that the crapometer weighs in at 14.91% – an artitrary figure that tells me that a little over one in seven of the methods in the component are, well, crappy.
The CRAP Load figure above hints that maybe about 14 tests would do the trick in reducing the CRAP figure of a complex method with 0% coverage.
I had the pleasure to share a drink and a chat last night with Ed Merks, the EMF Project lead. One of the interesting things that he brought up was his efforts to extend the EMF URIHandlers to be more REST-like. He mentions this in a blog entry – you will find the reference after the picture of the hibiscus. There are some more techcore details at the Bugzilla entry that hosts the patch.
This work is a big thing for EMF, in my opinion. Putting this together with a simple HttpService instance in an OSGi container can give you the basis for remotely manipulable models, with most of the work done by EMF itself. This opens up the field for Rich Internet Applications (blach – another buzzword) that can interact with hosted EMF models without having to depend on having an EMF library on the client side.
The Artix Repository product that IONA ships has done something very similar, but we have created the RESTful interactions outside of EMF. It’s cool to see this kind of capability moving into the core.
I’m waiting for my flight to Frankfurt to attend the Eclipse Summit Europe that is being held in sunny Ludwigsburg, in Germany. Due to a typical pebkac error, I’ll be staying in 3 hotels over the 5 days that I will be there 🙂
The Euro Summit is an interesting conference – the content is usually good, the venues conducive to meeting people and of course the German beer is without peer. This adds up to a fun-filled few days. During the conference, Adrian from STP will be updating us on what’s new and noteworthy on the project, and of course bringing us up to date on the old material too. One of the evenings will contain an STP BoF, although the date has to be confirmed.