Alex headshot

AlBlue’s Blog

Macs, Modularity and More

Mastering Eclipse Plug-in Development published

2014, book, eclipse

This week saw the publication of my second book, Mastering Eclipse Plug-in Development. Hopefully this explains why this blog hasn’t seen updates in a while; after some 360 pages and some 75k words, spare writing time has been a bit of a luxury.

The book is aimed at developers who are familiar with the basics of plug-in development, such as covered in my first book, Eclipse 4 Plug-in Development by Example: Beginner’s Guide.

It covers subjects that are not normally found in Eclipse plug-in development books, such as how to consume and publish OSGi services, how to use native code inside bundles and how to take advantage of event-based publishing in Eclipse applications. There’s also sections on how to provide user assistance (help) in Eclipse as well as some of the mechanisms for using P2 to manage repositories and to affect installations. The full table of contents is:

  • Chapter 1: Plugging in to JFace and the Common Navigator Framework
  • Chapter 2: Extending Eclipse with Custom Extension Points
  • Chapter 3: Using OSGi Services to dynamically wire applications
  • Chapter 4: Defining commands for the Gogo shell
  • Chapter 5: Native Code and Fragment Bundles
  • Chapter 6: Understanding Service Loaders and Class Loaders
  • Chapter 7: Designing Modular Applications
  • Chapter 8: Event Driven Applications with EventAdmin
  • Chapter 9: Deploying and Updating with P2
  • Chapter 10: User Assistance in Eclipse

As with the previous book, the code samples are all available as a GitHub project along with a series of tags associated with each chapter, and commit messages for each section in the book. When you clone this repository (or download the sample code from the Packt website) into Eclipse, you can use the built-in EGit support to switch between different chapters and compare the code with a before/after look at the changes.

I’d especially like to thank those in the Eclipse community who gave feedback on earlier drafts, especially Lars Vogel and Ian Bull; and of course Ann Ford, Carla Guillen, Jeff MAURY, Peter Rice and Dennis John who spent significant amounts of time and effort going through the code samples to verify that they work as expected. Any remaining errors are my own.

The book has been tested against both Eclipse Kepler and Eclipse Luna, and has been updated for OSGi R6.

EclipseCon 2014 Day 3

2014, conference, eclipse, eclipsecon

What a day yesterday was. The future is truly packaged in small pieces, and the small machines are certainly out in force. It’s a pity the keynote was interrupted by the power glitch, but stranger things have happened.

It’s also surprising that the IoT project has grown so quickly; only last year at EclipseCon I was interviewing Benjamin Cabe on the state of the M2M projects when there were only three of them, and they have grown to 13 projects. Benjamin has published his slides on what’s new in this space, which is certainly a lot. Not only that, but securing the internet of things is also on the radar (and I suspect will become increasingly important). Oh, and if you miss today’s flying sharks (yes, really) I have a video (from EclipseCon Europe) which one day I’ll get around to making available on Vimeo …

Still, if you managed to get out of the bar and to bed before Pi o’clock, you’ll probably enjoy this morning’s keynote. It’s difficult to comprehend the pace of change in the past few years, but given that the web has recently celebrated its 25th birthday it’s sobering to think that young children growing up will not understand that phones didn’t always use to have touchscreen or that pausing TV didn’t used to be possible (and they’d probably laugh at black-and-white film). The keynote will look ahead and discuss what may happen in the next decade, and asks whether or not technology is enabling us to be creative or enslaving us. Will 1984 be more like 1984 or 2014?

Polarsys have camped out in Grand Peninsula B today, and have a number of interesting topics; being able to trace the inside of the application (after lunch) looks interesting. There’s also something on Papyrus, the UML editor for Eclipse – hopefully advances in that modelling tool will give Eclipse an editor to be proud of (for those that still model using UML …)

If you don’t know anything about Xtend, you really owe it to yourself to go along to Sven’s “Code generation with Xtend” talk. Xtend is really powerful at generating clean Java source code, which gets compiled on the fly using the native compiler resulting in clean bytecode that is backwardly compatible (unlike other toy languages, which treat backwards compatibility as an afterthought if at all). You can also use Xtend to write lambda code in either Java 8 or Java 7; even though the new Java APIs are not available there are a number of extension methods which are actually more powerful than Java’s extension methods. I also spoke with Sven on xtend and xtext last year.

There’s a couple of OSGi related tracks today; “What’s cool in OSGi” is worth going to if you’ve not been following OSGi for a couple of years, because there’s some interesting things coming up with R6, and there’s a lot of interest in OSGi and the Cloud (with Thomas Watson giving a talk after lunch).

JavaScript turns up a few times today for those that are building more client side; how to integrate HTML inside Eclipse, how Orion works, how Node-RED first together; and in the afternoon, the VJET JavaScript editor and modular JavaScript talks are showing how Eclipse is growing in that space.

Finally, a shout-out to CDT, my favourite non-Java project at Eclipse. Doug Schaefer will be talking about how Eclipse CDT and JSDT can use Qt. (Doug has also been working a lot with Thomas Schindl on an SWT port of JavaFX) There’s also a couple of talks on debugging, from printf to TCF.

The day concludes with some really cool things; there’s a demonstration of using Eclipse as an Arduino programming platform for kids after lunch. I’ve experienced first hand (through Code Club) what it’s like to teach kids and they really love playing with this stuff. Go along and listen to Melanie talk about about how to program an Arduino and how kids can find out what’s new. Then there’s “flying sharks and m2m” – I loved this presentation at EclipseCon Europe and it’s worthwhile being there just to see how far you can take a crazy idea.

I hope that everyone enjoyed this year’s EclipseCon conference, and hope to meet some of you again in future years.

EclipseCon 2014 Day 2

2014, conference, eclipse, eclipsecon

Wow, what a day yesterday was. From Mike’s entertaining keynote with a forward looking view of Eclipse (both as an IDE and also the wider foundation) to the release of Java 8 (and my InfoQ article), there haven’t been many EclipseCons that have kicked off with such gusto. And with the combined release of Java 8 support in Eclipse along with new releases from JetBrains’ IntelliJ 13.1 and NetBeans 8.0 on the same day, the whole Java 8 day has ben one to remember. For those that questioned whether or not Oracle would be a good steward for Java, this certainly answers the question YES – right down to Mark Reinhold’s list of community members who helped with the release. And as if that wasn’t enough, there were several new contributions to the Eclipse platform last night as a result of the Eclipse Hackathon – making it easy for people to contribute using powerful tools like Gerrit is an excellent way of growing the ecosystem, because today’s contributors are tomorrow’s committers.

By the way, Martin Lippert’s Flux demo is available on YouTube (under the older name of Project Flight) if there are people who you’d like to share the future with.

Today sees a track focussing on the Internet of Things in Grand Peninsula B; we’ve already past the point where there are more mobile phones than people on this planet, and it’s not going to be long before we have more (non-computer) devices per person as well. From yesterday’s excellent flying shark demo to the people counter (which has a video available on YouTube courtesy of Eclipse Live and Ian Skerrett), there’s a lot happening in the IoT space at Eclipse. Many of these systems are using MQTT to communicate and share data (if you want to find out more about MQTT, I have an interview with Andy Piper on the Paho project, which provides MQTT client side tools). There’s even a raspberry pi demo showing how it can be used to hook up with a TV, which sounds like a fascinating application (especially now Java 8 has a package specifically for Raspberry Pi’s hardfloat ABI).

The cloud does pop up in a few places in the schedule today; both Scout and Java developers have cloud-based talks, and there’s a follow-up to the Flux project after lunch in Grand Peninsula A if you wanted to find out more.

Personally I’m interested in finding out more about the “extreme” git branching for continuous delivery – more and more people I know are using Git as their deployment mechanism, and it’s baked in to tools like Docker (which is becoming a standard for launching containers custom tuned to particular applications) – and git will be at the heart of all this change.

Finally there are some traditional Eclipse/Java talks, such as the Eclipse tips and tricks after lunch, and the JDT lambda expressions talk at the end of the day. There will be information there for people both new and old, but by this time next year I expect we’ll be seeing a lot more lambda-isation of APIs (and if you missed yesterday’s talk by John Arthorn on Java 8 APIs, his slides are available as an HTML slideshow on GitHub).

If you didn’t manage to get to the EclipseCon hackathon, and you’re interested in learning how to contribute, then there’s another chance later tonight in Harbour, along with the other BoFs that are organised tonight. And there’s a Late Night sponsored by Atlassian – Angry Nerds to the rescue!