Announcing: FUSE Integration Designer 1.2

Phew. It’s out the door. FUSE Integration Designer 1.2 is now available for download.

This release follows on from a couple of preview releases that we ran to gauge our approaches and get feedback. And we got plenty of it, in all flavours.

You might already know what FUSE is about - it’s four popular Apache projects (ActiveMQ, Camel, CXF, ServiceMix), bundled together into a single offering with subscription-based support from Progress Software. These four projects bring together capabilities around messaging, Web services, message mediation and the ESB concept, the idea being to give you a grab-bag of goodies that make sense when you are trying to solve integration problems.

As you might imagine, it’s an interesting task to put together a toolset that lets you blend these technologies in way that can suit every integration issue. In our preview versions, we concentrated on visualization and debugging of Camel routes and creation of Web services. I think the first thing we learned was that users tended to hit the limits of the tool far too quickly - the routes, for example, had a limited set of capabilities that was outstripped by what Camel had to offer. So we concentrated on making sure that the tool could handle any (1.5 or 1.6) route configuration you could throw at it. Let me know if you break it :)

We also filled in some glaring holes in the preview - you can now deploy your Web services to ServiceMix 3.x and ServiceMix 4.x containers, for example, and we have put in some tools that will let you rummage around inside your ActiveMQ message broker, introspect the queues and topics, inject messages for testing and snoop on messages that are going by. You can save and reload your state too, so it’s possible to set up and share a set of messages and configurations for testing or joint review.

There’s more, of course.

The previews were delivered solely as an Eclipse update site, which could be a bit of a bear to interact with. This time around, you download zip files that have everything - Eclipse core, dependencies, FUSE code, the works. They are big ok, but it means that you get everything in one swoop. There’s online help in there, and some cheatsheets to get you started.

Try it out - download is here, forum is here - and let us know what you think.

What next? The radar is moving on to things like JAX-RS tooling, Camel 2.0 support (runtimes go faster than tools, that’s why they are called runtimes, natch), getting a deep integration with m2eclipse and such like other tasty treats. If you’ve got a hankering for anything particular, let it be known in our tools forum.

By-the-by, since we are all Twittertastic these days, you can get more FUSE news by subscribing to @fusenews or indeed subject yourself to my edgy waffling at @oisin.

Intermittent Bug in Eclipse Community

This bug has been cropping up on and off since Eclipse 3.2. The usual pattern is that it becomes visible early in the year to the Planning Council, who immediately attempt to triage it and limit the potential solution space so that resolution can be made as cheaply as possible. Because Eclipse is an open organization, and is populated by humans, who are in the main scurrilous gossipers and rumour-mongers, awareness of the bug expands in the community as a whole. A Bugzilla is usually created to give the community the opportunity to cosmologically inflate the solution space through the time-honoured approach of getting your oar in.

Eventually, broad interest wanes, and the determination comes back the Planning Council again, who, disappointed that no really clear solution has come out of the community involvement, many eyes == many opinions it appears, just sigh and put a workaround in. Next year the same sequence of events occur.

This year, it’s bug 271054, but the problem is the same.

What do we call the next roll-up release after Galileo?

Comments about bike sheds will be modded up appropriately.

Eclipse 2009 Thursday

Nearly there. This is the final article in a tetralogy of tardy tales from EclipseCon 2009. I don't know about you, but I'm looking forward to the end of this, where I can put a big scratch mark through my notes and call them done.

Thursday 26th March

OSGi Dual Talks: Clouds + Bundle Generation

This dual talk turned into a singleton due to the US immigration office who didn't manage to get a travel visa to the presenter in time for the conference. There seemed to be a lot of this about. Because I'm on the programme committee, I got to see a number of emails, and there was a couple of tweets too, where developers with Eastern European-style names didn't get replies on their visas in a timely fashion. Further research indicates that the immigration people are guiding 150 days in advance application for scientific/technical conference travel visas. So, as the Irish Girl Guides say bí ullamh - be prepared: either get your application in early, or change your name.

Back to the cloud. Alexsey showcased some interesting tech around managing and deploying bundles into Amazon EC2, as well as discussing some of the security issues. There's a lot of this about too. Many companies are constructing their own tools around deployment and management into Amazon and private clouds, using OSGi technology as a handy enabler for standardized packaging and lifecycle. The scale of the activity was brought into sharp relief when I got to sit in on an OSGi Tools meeting on Friday morning. Conclusion - moderately interesting. Next step - wait for someone to develop a standard application model for OSGi.

Conquering GEF: Creating well designed graphical editors and bringing them to the Web

Over in FUSE-land, we've got a lot of software that use graph models. Integration graphs, dependency graphs, pipelines, that kind of thing. Graphs are great for visualizing, but when you've got the job of doing this for both browser and IDE based tools, then you start looking for ways to minimize your code base forkage. The RAP guys have done a great job in bringing SWT to the Web. If there was a chance that GEF, or better still Zest, could be brought to the Web, then that would be full of win. That's why I went to this talk, which was standing room only.

Once more, this was a talk of two halves. The first half was a kind of a playbook for GEF, and while that was moderately interesting from the point of view of a useful summary of the trials and errors of getting GEF right, the real meat was in the second part of the talk. Here, Vineet brought us from a GEF editor running in a workbench, to the same editor working in a standalone form without a workbench, to the same editor working in a browser. Very cool. The only downside here is that it's early days for the work, and there are issues that need to be resolved as well as features that need to be added. The way that it happens behind the scenes is that the original GEF code is compiled to ActionScript (some manual intervention required if there's name clashes) and then that ActionScript is the thing that gets rendered in the browser window. Definitely worth looking into as it matures. Conclusion - very interesting. Next step - come back and check this out after the summer.

Eclipse Swordfish - an open source SOA runtime framework for the enterprise

Swordfish is Eclipse's very own ESB - you can't have an open source community without one - and builds upon Apache ServiceMix and Apache CXF with some added-value capabilities and services. One neat technological advance they have in there is an extensible framework for dynamically generating interceptor chains which are installed in the Normalized Message Router to mediate message exchange. Now there's a statement that only makes sense to probably about ten people, all of whom are already too busy writing in their own blogs to notice it and marvel at its awesome niche techiness. So it goes. For everyone else, I'll offer the statement that this enables policy-driven behaviour. The ESB is OSGi-based, and uses JBI (also not as dead as people think) as the way to bundle up units of function. Conclusion - very interesting. Next step - must try it out a bit.

Afterwards, I said to Oliver that it was a good presentation, but probably a bit too much technical detail towards the end. He reminded my that the last time he did a presentation I had told him it was too high-level. He then asked was it possible to make me happy. I replied in the negative.

There's always an issue with demonstrating middleware. It is not interesting to some people to see command windows and logs - the MEGO effect is immediately apparent. It's like demonstrating intestines. All you have to look at is the output, and it's not really that pleasant. Ideally, you could take a chunk of intestine out, and attach electrodes to it, then you could pop your microphone in one end, throw the power switch and the induced peristalsis would rocket the mic out the other end, where you could catch it in an amusing manner. I bet you would get a whole lot of +1s for that demo. But you can't do that with middleware, alas.

SOA Ecosystems

Yet another one of these curated talks - I've got feedback on the plus, minus and meh sides of the argument on this model for talks, so I'm interested in what y'all think. Leave a comment with your, er, comment. I'll bring it back to the programme committee.

This started off badly because I turned up late to introduce it. Zsolt had already started Eclipse Community Registry, a building block to foster the adoption of the Eclipse Runtime and I'd swear that I got a few filthy looks from Adrian. Sorry, guys. This community registry that Zsolt was talking about sounded like a super-duper version of EPIC - but for services. It's a service registry with handy stuff like tagging, voting, commentary and the like. Zsolt made sure to point out that this is just an idea at the moment, it's not a project as yet, he's just putting it out there to see what people think. Conclusion - interesting. Next step - wait and see.

The second talk, galaxy, an open agile platform using dynamic software architecture continued the theme of long talk names, and removed the convention of capitalization. This was a consumer style of talk - Fy brought us through a fairly large-scale initiative being explored by INRIA to construct a development platform that integrates open standard technologies, includes an agile design and modeling environment, and ensure direct feedback to the design from a monitoring infrastructure. It looks neat, and my first thought was that well, this is a long way off. But it turns out there's a date on it, in Q4 2010, so that makes it more interesting. Conclusion - very interesting. Next step - keep an eye on what's going on.

Personal applause for Fy because he did a presentation which was almost completely pictures! Yay!

The final event of the day, and the conference, was The Eclipse Community Spotlight. It's the same every year, the top-level project leads, or their designated PMC representative get to sit in front of the whole crowd and answer questions. Every year, Doug Gaff does the lyrics of Baby Got Back sotto voce into one of the mics before they are switched on. This year, we found out exactly how much Eclipse real estate David Williams (WTP lead) owns - all of our base is pretty much belong to him.

That's it for this year. As per usual it's all great fun, and there was visits to one of the best Thai restaurants in the area, one or two great socializing occasions at receptions and bars, and awesome high-bandwidth interactions with people that can help me solve issues, forge alliances, explain concepts, and such important things. Ultimately, huge thanks are due to Bjorn, Scott, Anne and the rest of the extended team that made this all happen.

(Don't forget to take the survey!)

EclipseCon 2009 - Wednesday

Today I continue my week-in-arrears retrospective of the EclipseCon 2009. Authors often mumble into their whiskey about the tyranny of the blank page, but I feel that the full page (of partially illegible notes) is equally tyrannical. And I have no whiskey either.

Just a quick concerned citizen-o-gram by the way, please go and fill out the EclipseCon Survey, paying special attention to the the areas that you would like to see improve. It's important for the program committee next year.

Wednesday 25 March

Building Applications for the Cloud with Amazon

This was the keynote first thing in the morning. I was impressed with Don MacAskill's shoes, and the way that they run SmugMug on Amazons cloudtastical offering. I experience a veritable frisson at the new EC2 deploy and debug tools that Amazon have created for Eclipse. It uses Webtools' server framework and deployment mechanism to allow you to deploy your webservices to machine instances running in EC2, and it allows you to debug them as they run. Very neat. Limited to Tomcat at the moment, I'm sure it'll be no time at all when you will suddenly see it working for things like FUSE ESB and FUSE MR to name but two, 'nuff said. Conclusion - interesting plus frisson. Next step - extend Amazon code to deploy to FUSE ESB instances.

What's Baking in the WTP Incubator

was a little curated number intended to act as a showcase for some new projects that are growing in the WTP Incubator project. In a session of two halves, Shane Clarke gave us an insight into Developing JAX-WS Web Services - this is a new piece of tooling that enhances the dynamic web project approach of WTP so that it's easy to create JAXWS services. I'm biased, since we consume this stuff in FUSE and I'm a committer on the project, but Shane has done a maximum awesome job here, I can't recommend the man highly enough. Unfortunately, this looked like it was a two-hour talk that had to be jammed into twenty-five minutes, so I'm sure that there's plenty we didn't get to see. Conclusion - awesome. Next step - update the Apache CXF wiki with details of this.

Next element in the showcase Incubating XML Security Tools. This incubator project contains a set of capabilities for dealing with various XML Security standards, like partial encryption, signing and the like. The author, Dominik, originally constructed this as an e-learning thing, for people that wanted to experiment with XML Security and see how it all worked. It works pretty well for that, but I'm not sure if there are public APIs in place which would allow you drive the encryption processes programmatically. That would be of more value than the user-driven version. Conclusion - interesting. Next step - somebody translate the help from German please!

From source to automated builds with Buckminster and p2

Buckminster is the software assembly tool that we use to do the STP builds, and it has served us well over the past couple of years, so I was interested to see what has happened recently, given all of the p2 stuff going on, and Eclipse release train requirements around packing and signing and all that. Good news - there's a recent version of Buckminster that is p2ized and fully kitted out for packing and signing headless builds. Just what the doctor ordered. I would rush off to try it out immediately, but I'm stuck here writing in this damn blog. A footnote on the presentation - the subject matter is a little esoteric, but Henrik did a good job explaining it in a way that didn't dive deep into the details - except perhaps with the CSPEX thing. Conclusion - w00t. Next step - update to the Magic Buckminster and plumb in my STP generic build system, then blog about it.

Higher-level UI programming

Intriguing title on this session. Perhaps we were to be shown how to program UIs by pure radiant thought alone? Or perhaps we were going to see some Epic-class characters showing us how to do our UI? This was a two-session talk again. First up was UFaceKit - A highlevel Databinding and Widget-Toolkit-Abstraction - the motivation behind this particular piece of work is to provide a higher-level widget toolkit abstraction that can be successfully mapped to alternate widget toolkit implementations, like Swing, GWT, SWT and the like. UFaceKit is now an Eclipse project. Conclusion - interesting. Next step - keep an eye for an opportunity to experiment.

The second talk in the showcase was UI designers : Untangle the knots, use EMF (live) models! (yes, there was an entertaining selection of session titles this year for some reason). We got to see an EMF model representing an SWT UI rendered, live, with instant updates to the UI as you tweaked the model. Very nice. The code that does this is an open source declarative UI framework (ye gods, another one) called Wazaabi. Conclusion - me like! Next step - use this for kick-starting mockups at least.

Eclipse and Maven

This next session was one that I was particularly looking forward to. Eclipse, Maven and how they interact is a persistent thorn in my side - always has been - so I was going to this session in the hope that there will be some release from the anguish. There are two Eclipse and Maven projects at the Foundation, and this session was split into two parts to align with the projects. Some people came along hoping for celebrity deathmatch - I just wanted some solutions.

I'm not going to go into the details of the sessions - I can summarize with m2eclipse FTW, apologies to Phil and Brett and Carlos, but m2eclipse is really ploughing resources into this and is moving ahead with a much more complete and broad solution. Conclusion - m2eclipse FTW. Next step - I think I'll have to start committing to this when it moves onto Foundation turf.

I got the chance to have a sit-down chat with Jason of the m2eclipse project later in the day and we talked about where it was going, and I asked some questions about how I can incorporate the thing into the FUSE Tools and meet the double goal of providing a means for developers to move in a frictionless manner from snappy Eclipse builders to Maven CBI approaches and not suffer terrible brain-damage. Jason gave me enough confidence that this will happen, but it's going to require some work. I'll pick up that thread again in another blog entry.

EclipseCon Thru The Lens

[caption id=“attachment_86” align=“alignnone” width=“500” caption=“P”]Page 1[/caption]

[caption id=“attachment_86” align=“alignnone” width=“500” caption=“P”]Page 2[/caption]

EclipseCon 2009 - Tuesday

As usual, day one back from a conference has disappeared in a miasma of hurried catchups, email rationalizations and a numbing sensation of generalized low-grade horror.

Day two must mean the summary of the conference experience. I'm looking at my twenty-four pages of notes with mounting distress at the level of detail. Some ruthless editing is in order. I've previously written about the Monday line-up, and followed with a partially incendiary post that spiked my stats and has probably ensured that I will have a crowd around me at my next talk. Remember, everyone, that pitchforks are sharp and flaming torches are hazardous items indoors.

Tuesday 24 March

Enterprise Build System: Model Driven Architecture on PDE Build runtime

At some point in the past, Kagan's company had constructed an Eclipse tool for our service testing framework, so I was recommended to go along to this talk. I got to see about fifteen minutes of it before being interrupted by a call that I couldn't defer. Unfortunately, this meant missing the demo part. Overall the subject matter looked interesting. It addresses the issue of constructing Eclipse builds and products, which, for some unknown reason is more difficult than it should be - mostly it's the failure modes that are impenetrable. However, because of my vendor/consumer hat, the profusion of build approaches fills me with more trepidation than delight. You know the feeling - you're watching the Cambrian explosion here, much experimentation of body plans and capabilities, and you are all positive but really you are gritting your teeth waiting for the Pliocene to arrive so you can use the stuff in anger. Conclusion - interesting. Next step - contribution to Athena maybe?

Executing BPMN

Koen Aers presented this session, wherein BPMN was hung within an inch of its life, cut down from the scaffold, eviscerated on the windlass, had its intestines burnt in front of its eyes and finally had its corpse quartered and dispatched to points north, south, east and west. My little joke. It wasn't that sort of execution at all. Basically he showed how jBPM 4 can execute your BPMN-described models. He gave a quick intro to the charmingly retro little grayscale icons used by BPMN. Koen also said that the BPM/Workflow is a jungle of standards. I think he understated the case a little. It's probably more like the particle decay cloud that emerges from the collision point of two positron beams, except a lot slower. Hopefully convergence will occur at some point in our lifetimes. Conclusion - informative. Next step - /me will leave this kind of thing up to the experts.

SOA Track Set

Here we go. This is the collection of short talks that I was curating. The point of these tiny talks was to bring people up to speed with what's going on in the SOA Tools Platform project. Jerry spoke about the STP Policy Editor New and Noteworthy - not too much changed here, but some interesting elements have been added to help you edit Distributed OSGi remote services configuration files. Next up was /me with Enterprise Integration Designer: New and Noteworthy - this is where I got to practice being the bearer of bad news. This component is currently sleeping deeply, with no real effort being made to support it except by yours truly. A plea for help ensued, complete with cute puppy picture. Want to contribute? Take a look at the Wiki and get in touch! In a carefully-planned sweetener to disperse the bitter aftertaste induced by bad news, Vincent then presented SCA Tools: new & noteworthy. Now this project is really lively and is constantly adding new features. They've made some changes around the capability to extend the metamodel with new SCA artifacts and included an XML editor for defining composites and component types. Above and beyond the immediate application to SCA runtimes like Tuscany and Frascati, I think that this tool has great potential to help people construct composite applications in this brave new OSGi world we are entering. Finally, Adrian brought us up to date on Integration of SOA Editors in Eclipse using the STP Intermediate Model. There's another big potential here as the basis for a SOA-style repository model. Conclusion - you tell me. Next step - this will be the subject of another post!

Practical Process Orchestration using Eclipse SOA

In this talk, Dietmar introduced us to some of the BPEL-y stuff that he's been working on, based off the Eclipse BPEL project. If you view the stats, this talk got totally panned, with a lot of -1s. Two things come to mind straightaway. First, I think that the material in the talk wasn't really quite ready for presentation. If an attendee wanted to go off and do some work with this, they needed to download and build the BPEL project first. That's ok in my book, but many attendees might expect to be served their meal on a plate, rather than being handed a bag of raw meat and other ingredients. Personal taste applies, but know your audience. Second, the stats seem off. Last time I looked, I didn't see any +0 votes in the stats for this talk, and there was at least one - mine. So I'm not so sure accurate reporting has occurred here. Conclusion - somewhat confusing. Next step - tighten up and have downloads.

I think there will need to be an aside soon on the Eclipse BPEL project. Not now though. There's more sessions. No wonder we were all hosed at the end of the week.

Eclipse SOA Initiative

This was a quick intro from Ricco about a nascent initiative to produce an industry-aligned working group in Eclipse about all SOA things. More on that as it gains more support and strength later. And, for those of you who are quick to turn around and say that SOA is dead, I have two words for you: Ker. Ching. That will be all. Conclusion - watch this space.

Galileo: delivering the next major release

Last talk of the day. Rich and Markus lead us through the Galileo build, and dammit, the room is out the door again. Grr. Since I spend time looking inside the guts of this particular monster, I bailed early, before the funk started to rise in the room. Conclusion - I know where the bodies are buried already. Next step - keep shovelling.

At that point I retired to the bar for beer and sushi with some other Progressians. Having a distributed organization, and in an environment where the travel budget fairies have gone to the bad, conferences can provide valuable meet-up opportunities. The Wednesday writeup shall ensue...

Some Opinions About EclipseCon Talks That Will No Doubt Be Unpopular

In watching the presentations this year, it has come to my attention that some of them are boring. Yes, I know this will be an unpopular opinion, but I was startled enough by it that I thought I had to share.

I have always asserted that as a presenter, your primary role is to entertain. That is, you want to ensure that the arses stay on the seats until you get your point across, and when you do get that point across you want people to be engaged, with their brains on.

Remember, presenter - I have Twitter now. I can amuse myself if you are not amusing me. But haven’t I come for content? Sure, but if I enjoyed the presentation, then I’ll be happy with a bunch of recommended links.

Now unfortunately, there are some topics that are inherently dull and uninteresting in their own right, although this does vary with personal taste. For example, even the merest mention of BPEL gets me right into that day-dream about being out on the golf course on a sunny day.

Or, come to think of it, the one about chainsaws, which I won’t elucidate here.

You are kind of doomed with those type of topics - you had better hope that the attendance contains a cadre of narrow-niche hardcore heads who love it from their own particular perspective. But it will - unless you get the conference wrong.

Ok, so you have a topic thats intrinsic novelty has not put you at a disadvantage. Hypothetical example, Editing Tools for SmoochML Documents. The first mistake to make would be to say “First I will introduce the SmoochML standard”. Dude, if I didn’t know what it was, I wouldn’t be in your talk. You are a developer, so I understand your need to do obsessive corner-case coverage, but, you know, you’re actually off-topic. And then you might complain that you are running out of time at the end. Sympathy, I know thee not.

This is why I like short talks (although ten minutes is too short) - there’s no time for a gentle introduction, it’s off the cliff, into the sea, down as deep as you can go, and then pop out of the water panting and hollering. Forget beach entry.

If you are doing a fifty-minute talk, then I recommend you get in there with a good narrative. Set up a dramatic situation - what was the problem? What would be the consequence of failure? You must create several thousand SmoochML documents in 24 hours, or the Joker is going to blow up a hospital. And, all you have is three dozen red pandas that the programmers inadvertently left behind over the weekend. Yikes!

Next step is to resolve the conflict, tell the story, how did you deliver using the Editing Tools for SmoochML project? Just tell it. Then once it’s all over, go back over a few things and drill into them a little more. People will be more engaged - they may even ask some questions rather than sitting there breathing shallowly with glossy little eyes.

Good luck.

Oh, and go check out the stats for the talks and see if you can spot the ones where people weren’t engaged.

EclipseCon 2009 - Monday

It’s 7am Wednesday morning in Santa Clara, CA. Breakfast is on its way and I’m trying to sort my schedule for the day ahead at EclipseCon 2009.

The last couple of days have been busy. Not as busy as previous years - there’s a marked downturn in the attendance due to corporate travel bans and a seeming go-slow in the US Immigration Dept responsible for issuing travel visas.

On tutorial day, Monday, I attended a PDE builds/Athena builder tutorial. Peak learning came from Andrew Niefer (the last PDE build guy standing) whos skilled explanations painted a picture of PDE build not so much as the be-tentacled monstrosity many believe it is. Top tip - think of PDE as a framework for generating Ant scripts.

Nick has slides and comments on his blog.

Verdict: early days yet, but potential there. Looks like most of the presentation to the user is going to be a minimized properties file plus a conventional project structure. It’s ok. Work to be done with tests etc.

I’d planned to attend the p2 tutorial in the afternoon, but turned up three minutes late (lunchtime visit to Apple store, natch) and the place was rammed.

Rant ensues - we do need to get sorted on room allocations. The p2 thing is popular, since it was forced down our throats last year, and it was in a small room. Downstairs, there were huge rooms with a dozen people scattered about. Grr.

In the heel of the hunt, I went to the Domain-specific Language Development talk, which turned out to be a good learner (the pain). I actually twigged how GMF works at last. The concern is that I may have lossed SAN points in the process - I’ve often remarked how learning the many Eclipse frameworks closely mirrors character progression in the Call of Chthulu RPG. What’s more, I learned about model tranformation with Operational QVT, which is good - will use it. I zoned out during the Xpand piece (jetlag).

Top tip to presenters - Address your audience, not your slides. The slides can’t beat you with sticks for a bad delivery. Ask your audience how they are doing now and then: are they following? Have they got the ellipse in the node mapping done yet? Do they need a minute to regenerate the model because they are newbies at reading your mind? That would be a good start.

To wind it up, I got fingered by The Powers That Be to do powerpoint karaoke session with the inimitable Mik Kersten of Mylyn fame (going to have to get that integrated with FUSE tools). We presented a new framework for identity theft in the cloud. ROFLMAOs there were in abundance.

Back to the schedule selection. At this point in my career I had expected to have mastered basic bi-location, but haven’t, so I thinking of relying on oscillating between sessions. Tuesday update later on. Don’t forget there will be tweetin’ ahead - #eclipsecon.

BPMN Modeler Demo

Last week, Antoine Toulmé hosted a live action demo of the BPMN Modeler Project. It’s been recorded, and you can catch up with at Eclipse Live. Eclipse Live has turned out to be a pretty cool resource, and I’m promising myself I’ll spend more time hanging out there, and might even do some video.

If you think that the demo is going to be all about BPMN and possibly a little too dull for your bytecode-wielding brain, fast forward a bit to where Antoine talks about extending and changing the modeler for your own needs. You’ll be deep in the code at that point and finding out about the awesome GMF chops that went into making the modeler what it is.

Check out the collection of screenshots here to see some of the possibilities.

[caption id=“attachment_71” align=“alignnone” width=“500” caption=“Due Diligence Process”]Due Diligence Process[/caption]

Developing Silverlight clients for CXF using JAX-WS Tools

I just found out that the eclipse4SL, a development environment for creating RIAs with Microsoft Silverlight, is using JAX-WS Tools for Apache CXF. In the linked how-to, the guys show how to develop a Silverlight client that accesses a Java Web service. Nice!

CXF Tools in WTP 3.1M5

The JAXWS project in the WebTools incubator has made its way into the light of day on the latest and greatest 3.1M5 release update site. Point your Eclipse update site manager to to get the plug-ins. One thing to note is that while this release uses the most recent I-build of the WTP frameworks, the code is intended to work with the Eclipse 3.4.1 release too.

When you access the update site, you should see the CXF Web Services (Incubator) feature available in the site listing.


Thanks to David Williams for setting up the build and Shane Clarke for the awesome code construction!

Sometimes, it's just about the waiting.

Well. It looks like I won’t be using Spotlight for a while.


[caption id=“attachment_47” align=“alignnone” width=“300” caption=“Find something else to do…”]Find something else to do...[/caption]

Developing with Eclipse and ServiceMix

Update :  There’s some issues with this right now - see ESB-531.

My pal Ade has produced a nice little video on using m2eclipse and the Apache ServiceMix maven archetypes catalog to accelerate your development of ServiceMix-based applications. You can find it on the FUSE training videos entitled Performance.

Check it out. It should speed up your ServiceMix development!

IJTC Conference

Two months since the last blog entry! It’s usually the case that blog drought occurs when there is either a feast or a famine of things going on. In this case, it’s the former. I’ll catch up with events as soon as I can and do some evil date mangling on the blog timeline.

In the interim - I’m sitting here in at the IJTC conference in the Science Gallery in Dublin. Jeff Genender is about to kick off his talk on Apache Mina. I’ve already heard Charles Nutter speaking about using many languages on the JVM and Guillaume Nodet on Apache ServiceMix.

I’ve missed out on some equally cool talks, like web application development with Spring, and an introduction to Spring Batch, just because I haven’t yet master bi-location.

Great content so far – but the crowd is smaller than I expected. That’s a bit of a surprise.

Maybe everyone is watching the LIVE VIDEO that’s going on right now. I can inform you that there’s about a 3-second lag :)

Open Source not proof against EOL

[caption id=“” align=“alignright” width=“198” caption=“Thanks to Aaron_M!“][/caption]

“The glories of our blood and state     Are shadows, not substantial things;  There is no armour against Fate;     Death lays his icy hand on kings: …”

And, as it turns out, Eclipse Projects too. On November 12th, the Eclipse Foundation is holding two Termination Reviews as part of its regular Eclipse Project Review schedule. The ALF Project (death knell pdf) and two of the components (SC, SOAS, death knell pdf) of the SOA Tools Platform project are slated to shuffle off their mortal coil, kick the bucket, buy the farm.

The good thing is that while an Open Source project might well crumble, through neglect or disinterest, to readonly svn dust, like the mythical vampire, just a few drops of the right kind of blood dripped onto the repository will have it up and about again.

Updates 2:

Blog posting gets SearchSOA interview with Rich Seeley

Updates 1:

Slow Friday in Vulture Central  ;  Sanjiva has a Little Sneer at Eclipse

Camel Spit

What goes into a When?
Isn’t it great when you get an excuse to learn something? Even though you have a to-do list the length of your leg already?  Inspired by this potential enhancement to Apache Camel, intrigued by Xtext and (crucially) enabled by two full batteries and a flight to Boston, I hacked up a simple grammar for a DSL to describe Apache Camel routes and generated a syntax-checking Eclipse editor. It’s not pretty yet, but you can see the result at the Camel Extra project - introducing the charmingly named Camel Spit.

Working With Enterprise Integration Patterns

Thanks to Enterprise Integration Patterns, architects have a clear and succinct way to describe integration within complex systems. It certainly beats a lot of MS-Word documents and monster integration architecture diagrams. And, with Apache Camel, we’ve got an open source runtime that allows us to create routes by chaining EIPs together, using Spring XML or Java fluent builders. That’s fantastic, but EIPs are as much about sharing pictures as creating message routing graphs, and where are the pictures?  

We’ve made some tools that will allow you to load up Camel Spring XML files into Eclipse for visual inspection and editing. You can also create EIP diagrams in your Workbench and save them as Camel configurations. Finally, we’ve put in some debugging capabilities to allow you trace through the paths a message will take through your EIP graph.  

We are earnestly seeking feedback - check out the FUSE Integration Designer Preview page to download the Eclipse plugins, or check out the video links under the Training Videos at the bottom of the page.

Blog move...

This blog is moving to and will resume with a slightly different focus. See you there!

Developing Web Services with Eclipse and CXF

Update:This is the most searched-for entry on my blog, and I have to warn you it is WAY OUT OF DATE! So skip it - and someday I’ll write an update and link it from here…

I’ve seen more than one instance of people scratching their heads over the CXF tools in the Eclipse STP project, so it was time to go back to the drawing board and take a new approach. Now we’ve finished our first cut of what we think service creation tools should look like, we would like you to check them out and tell us what you think.

What have we done differently? Well, the code is now completely based on Eclipse WTP frameworks, rather than having only a passing integration with them. If you’ve ever done Axis2 web service development with Eclipse, then you should be able to get familiar with this really, really quickly. You can create CXF web services from WSDL, or from a Java class or interface. The tools support selection or extraction of an SEI if you are starting from a class. JAX-WS annotations get added automatically, and you set preferences on how you would like them to be defaulted. And to help with getting those annotations right, we’ve added some validation - you’ll get error markers if you incorrectly combine annotations.

If the alphabet soup in the previous paragraph has made you sleepy, a few examples of the tools working might help to perk you up. Check the silent movies.

So, where can you get the code? For a start, we’ve bundled it in the FUSE Integration Designer Preview. We’ve also decided to contribute the code to the Eclipse WTP project, where it can be warm and cosy and be accessible for all. You can find the proposal for the WTP Incubator attached to Eclipse bug #248630. Also attached to that Eclipse bug is a zip file that contains the plugins you need to get running. Unzip this into your eclipse directory, restart your workbench and you should be good to go.

Try it out and let me know how you got on. You can leave feedback here on this blog, add a comment to the Eclipse bugzilla, send an email to (best place right now), or drop in on the FUSE Tools Forum.

Web 2.0 == (Web 1.0 + Pies)

It’s official. Web 1.0 has grown up, become more attractive, but behind the scenes has been cramming in the pies. Average web page size has tripled in the last five years.

WSDL Revisited

Waay back in May last year, I wrote a little blog entry taking WSDL and associated tools to task. You can imagine my delight when my esteemed colleague Guillaume Nodet sent me a link to a Google Code project called Relax-WS.

The author states

WSDL is a key technology for SOA, and yet creating and editing these files is about as much fun as straightening all the noodles in a bowl of spaghetti with a pair of tweezers.

and goes on to promise

Relax-WS aims to provide a simple, programmer-friendly syntax, without losing any of the metadata

all good, right and true, in my opinion. I would go even further on the last quote there and say that Relax-WS should aim to provide the simple, programmer-friendly syntax, but should also lose any metadata that is not necessary and add metadata where it is missing from WSDL.

One comment I have on the Relax-WS approach is a reaction to the sample code that is on the front page

service Hello {
  port {
    operation SayHello {
      in {
        element name {xsd:string}
      out {
        element message {xsd:string}

What's wrong with this, you might ask? It's clear and concise. Indeed it is, say I, and there is nothing at all wrong here, but the bit that makes me somewhat uncomfortable is the use of the service term there. Once you start to mention services, you are looking at a crossover from definition of schema and operation to a service provider definition, which necessarily leads on to having concrete pseudo-physical resource details in the Relax-WS file. What's a pseudo-physical resource? It's an artifact that has a constraints on a machine - so things like ports, databases, file systems, etc fall under this category. If you nail down your pseudo-physical resources at development time, then you are in for a reduced amount of fun when it comes to deployment. Ideally, you bind all those pp-resource details at the last minute (delay your decisions -- a lean maxim), so when you are developing you should set up the capability to discover those details at start up time from a fixed place, rather than baking them in.

A good example would be coding a Spring application for the ServiceMix 4 kernel, burning in the configuration into the bundle, and then binding it to a little properties file that contains the pp-resource specifics for the particular [virtual] machine upon which it is to be hosted.

Anyway - fair play to the author of Relax-WS for taking this on. I'm sure there will be take-up of the project.

Awesome Regex Ninja

^(0*|-?0*[1-9]\d{0,8}|-?0*1\d{9}|-?0*20\d{8}|-?0*21[0-3]\d{7}|-?0*214[0-6]\d {6}|-?0*2147[0-3]\d{5}|-?0*21474[0-7]\d{4}|-?0*214748[0-2]\d{3}|-?0*2147483[ 0-5]\d{2}|-?0*21474836[0-3]\d|-?0*214748364[0-7]|-0*2147483648)$

Javapolis 2007 - The Techie Bits


I’m just back from Javapolis in Antwerp. Javapolis is a conference put together by the BEJUG, Antwerp is a big city in Belgium and the second largest seaport in Europe . For a conference put together by a group of folks that are not pro conference makers, it was pretty impressive. The fact they have kept the price down to less than €300 is particularly amazing.

I was there to check out the conference, but even more importantly to get to have a chat with some of our new committers on the Eclipse SOA Tools Project. We’ve had a number of new components just added to source control (more about that in another entry) and now I was getting the chance to meet some of these developers for the first time. Even better, I got to hang out with Bruce Snyder, open source aficionado extraordinaire, and Stephen McNamara, a buddy of long standing and enterprise survivor.

First off the bat I had a chat with Mark Little whom you may know from JBoss ESB and the world of transactions in general. We marvelled at how world+dog is currently refactoring their {insert runtime tech of choice} to be composed platforms using OSGi bundles. This is going to be very interesting as it will open up the containers, which will hopefully bring more control to the customer platform developers on the one hand, and introduce with the other a whole raft of new interoperability issues :)

James Gosling’s keynote was a round-up of everything that has happened in Java land for the last year. It’s easy to see where his interest lies - realtime java and the spread of java-controlled devices, using SunSpots and similar tech. He also spoke of the mobile services architecture (JSR248) and how that was to be a “grown-up CLDC”. I polled a few individuals over the next few hours and there was a keen interest in seeing how Google and the OHA will eat Sun’s lunch on this one.

Key point for me was that mobility is coming of age at last, something like 2 years after we pulled our enterprise-mobility product. Timing is everything after all.

Netbeans 6 hit the presses during the week, and James was keen to point out some of the new and shinies in the bag. Enhanced mobility support was one thing, an holistic Java model that makes for keen context-sensitive refactorings, REST service development tools and advances in report design and generation were some of the things he mentioned. I’ll be looking at the REST tools, because we are developing REST tools in STP too, but the Eclipse refactoring and reporting facilities seem to be at least a couple of years ahead in terms of feature comparison. I’ve not using the mobility gear in Netbeans or Eclipse, so no comment on that.

He also mentioned JavaFX, and later on in the week I attended a talk/demo on it. It looked faintly interesting until I spoke to the guy sitting next to me. He had attended a talk at OSCON where the JavaFX demo was followed up by a Flex demo which blew it out of the water totally - the SUN demo person looked pretty squirmy by his account. Flex is very very impressive, but perhaps JavaFX may beat it on the phones.


The guys from OW2 had a talk about all of the stuff that they have and how it can all be linked together. It had BPM, BAM, SOA, portals, workflow, monitoring and all other aspects of the enterprise buddha nature. My poor brain filled up early in the talk, so I will need to look into it in bite-size chunks later. I'm delighted that Eclipse STP counts among its committers a number of individuals that are involved in the OW2 community-- Christophe Hamerling, Adrian Mos, Andrea Zoppello, to name but a few and of course Alain Boulze, who is an STP PMC member.

In between the corridor work I managed to get to a few more talks. I experienced a good quality brain melt at Joshua Bloch's closures talk and attended a very informative talk on JSR311 and REST from Paul Sandoz. Andrea Zoppello did a very interesting demo on going from BPMN to runtime monitoring at the Eclipse stand and I got to catch up with the Eclipse stalwarts Wayne Beaton and Ralph Müller. In the photo below you can see the inimitable Bruce Snyder being totally mobbed by adoring geek fans after his talk on ServiceMix and Camel. [Note - picture is blurry due to awesome flux of worshippon particles]


If you are in the market for a Java conference, and a bit short on budget, Javapolis is well worth your while, methinks. I would just ask them to do two things for next year - first, open up the program to allow submissions from whoever wants to submit java related stuff; second, put some evaluation sheets out there guys! That panel with Bloch, Gafter, Gosling, et alii was really really terrible! Having Bloch and Gosling waffle on about unsigned int for nearly 20 minutes was a total waste of time. Got to hand the beachball of blame to the moderator there - should have put the squeeze on them, Carl!

For photos, hit Flickr with a keyword search on JavaPolis.

It's Déjà Vu All Over Again

Heard of Thrift? It's a Facebook-developed system that allows services to be defined in a language-independent manner.

Didn't we do this already, a while back?

It's slated for contribution to Apache too.

Eclipse Provisioning Platform

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.