Twitter github

Posts Tagged with “pde”

PDE’s Export Target Wizard

In Eclipse 3.6 M7, PDE will offer a new wizard that allows you to take the contents of your currently active target platform and dump it on disk somewhere.

We used this utility while writing the OSGi/Equinox and RCP books and I finally got around to pushing it into PDE (it was hiding in the PDE incubator for awhile). Thanks to Ian Bull for using one of the tried and true methods of getting people to do stuff in open source: patches and nagging 🙂

OSGi, PDE and Where’s Waldo

I was reading over the OSGi survey results and noticed that people found that obtaining valid bundles is still a problem. I agree. I find obtaining bundles or setting up my development target akin to playing a game of Where’s Waldo.

Where's Waldo

As you can tell, I was never a fan of the game, but for some reason my family loved getting those books.

Last week, the PDE team had a little meeting of the minds to help think of ideas to tackle parts of that problem. There’s a lot more we can do to improve the developer experience around managing bundles since p2 is around now.

The PDE team is looking at improving the target definition story again. One aspect of the improvement is making targets managed by a p2 profile. This would make it easier to manage the target in the long run and potentially expose cool things you can do with targets. The aspect I’m mostly interested in is improving the developer experience and workflow with PDE.

I remember when I first started developing bundles, one big problem was just setting up your environment and finding the correct bundles. I remember staring at my Java source files and seeing evil compile errors for missing imports like this commons collections one.

Missing Imports

Wouldn’t it be nice to take advantage of p2 repositories to help solve that problem?

pde2

p2 repositories are rich with metadata and you can query them for many interesting things like packages.

Add Artifact

You can also query for things like bundles.

pde4

Heck, if you’re adventurous, you can also query for features!

pdefeatures

Since the target platform is managed by p2, the necessary artifacts will be downloaded and available for you to use.

pde5

No more compile errors!

pde6

We can see that the commons collections bundle is now part of our dependencies.

pde7

That’s just one example of how to improve the bundle developer workflow using p2. The PDE team is exploring many options so if you have ideas on how to improve developer workflow, please let the PDE team know.

The PixelConverter party is over…

Sometimes when your browsing for types in Eclipse, your head wants to explode:

Good news though, the PixelConverter party is finally over and has been declared as an API in JFace. The next stop is the abundance of “SWTUtil” classes throughout the Platform and friends.

Eclipse BugDay is Friday

It’s that time of month again… it’s Eclipse BugDay this Friday. Here are bugs I find interesting from PDE:

[220109] – [refactoring] Add a PDEDeleteParticipant
[233682] – open extension point by double clicking in the manifest editor
[184084] – [refactoring] Renaming an .exsd file should cause plugin.xml to be updated
[241505] – New Library Plug-in wizard should allow to set a BREE
[240597] – Refactor site.xsl for easier maintenance

Also, this BugDay marks a year since the program was started at Eclipse.

Was it a good idea? Was it successful? I don’t know, but I do know from a bugzilla query that over 200 bugs have been fixed as a result of bugday. That’s not too bad 🙂

In the end, it’s been fun working with new contributors inside of PDE and other projects, thanks for participating!

‘Tis the Season to Refactor

I like the beginning of new releases because it gives you time to reflect on things you couldn’t do during the crazy end game days. One of those things you couldn’t really do was refactor. I like refactoring for multiple reasons…

  • It allows you to clean up code and strive for simplicity
  • Sometimes allows you to further modularize your code
  • You find instances of code that shouldn’t be referencing certain things
  • It has a side effect of possibly bringing on new contributors…
  • and so on…

I don’t like refactoring for multiple reasons…

  • refactoring a bunch of packages when all your NLS strings are in one sucks
  • refactoring a bunch of packages when dealing with a central image registry sucks

I’m excited to see that already for 3.5M1, we will have a couple refactorings in the Eclipse SDK:

[207704] – Decouple org.eclipse.compare from UI

This is exciting because it now allows people to take advantage of the core Compare code without dragging in the UI. In the past, the core and UI code were all in one plug-in (org.eclipse.compare). This wasn’t good for people who wanted to run compare code headlessly and also people that just wanted to take advantage of the ability to diff things in another context.

Thank you Compare team for making this happen!

[241145] – [refactoring] move UA code into separate plug-ins

On the PDE side of things, I finally decided to refactor out the User Assistance (UA) tooling into separate plug-ins. I did this for two selfish reasons… (1) the PDE core and ui plug-ins were getting big… (2) I wanted to bring on another contributor to PDE to help maintain and grow the user assistance tooling in Eclipse. I don’t think there’s anything wrong with that ;)?

Anyways, I highly recommend people to look now and reflect on what they can possibly refactor out for the benefit for the wider Eclipse community. For the eclipse community, it’s a good time to bug Eclipse developers to refactor things that you always wanted… or better yet… provide patches to move things along quicker.

A dash of legacy

Sometimes you just have to laugh at certain bugs.

For those who don’t know, PDE hasn’t supported “-” in bundle symbolic names (plug-in ids) for awhile due to legacy reasons. Before OSGi was introduced in Eclipse, “-” wasn’t a valid character and this is something that has just stuck with PDE for awhile. It’s funny that it wasn’t noticed until recently… I think mainly due to the SpringSource repository having bundles in this format.

The issue will be fixed in 3.4.1 and 3.5M1 releases.

Austin Eclipse DemoCamp Reminder

Just a quick reminder that the Austin DemoCamp is today. We have about 27 people registered and a few presentations to go over before we head for some classic Austin BBQ.

I will be discussing (slides) some of the new things in PDE for the Ganymede release. Ken Ryall from Nokia will be discussing the CDT and how Nokia leverages it in its Carbide product. Bradley Childs from IBM will be introducing the JavaScript Development Toolkit (JSDT) which I’m very interested in. When I rub my magical crystal ball, I see PDE in the future integrating with the JSDT in some ways when e4 starts taking off 😉

Eclipse Time 2008

One of my favorite PDE contributors, Benjamin Cabé from Anyware Technologies, is helping to host Eclipse Time 2008:

If you’re in the Toulouse area around May 29th and part of the French Eclipse community, please attend!

Mentoring is fun…

I get a big kick out of mentoring students, you learn a lot about yourself and in my case, have the opportunity to selfishly spread the Eclipse love. My first experience in remote student mentoring was with Remy Suen two years ago and I have improved my technique a bit (sorry for you being the guinea pig Remy ;p). One of my students (Rafael) this summer in the GSOC program has been working on the Declarative Services tooling in the PDE incubator.

How did we get started? The first thing I did was stub some code out for Rafael. I create three skeleton plug-ins representing core, ui and tests pieces. I introduced him to project sets which make it a bit easier to checkout the code into your workspace. After that, I started to create a basic plan for him to follow using bugzilla defects. He also started to follow the PDE Incubators inbox to triage bugs when they came in (that’s a very good committer skill to have ;p). I then introduced Rafael to Mylyn and EclEmma to help his workflow a bit:

With those tools installed, you get a better idea of what needs to be done (via Mylyn) and also the current code coverage (via EclEmma). We have been able to move faster with these tools installed towards our goal of having a nice and shiny Declarative Services editor in Eclipse. This wouldn’t be possible without the extensive set of tools available in the Eclipse ecosystem.

So feel free to spread the Eclipse love and show any students (or colleagues) some of the cool tools you’re using in Eclipse to improve your workflow.

New PDE Members

Now that feature freeze is in full gear for the platform, I can catch up on some administrative duties. First and foremost, we have some new PDE proper members to talk about.

Curtis Windatt from the Debug team has become a PDE committer recently:

Everyone should give Curtis a warm welcome, he has contributed a lot to the 3.4 release mainly in the areas of source bundles and p2/pde integration. Furthermore, Curtis is a second dan black belt in Hoshinkido Hapkido and is rumored to be a stunt double for McLovin 🙂

Rafael Oliveira joins the PDE team as a contributor from the Google Summer of Code 2008 program. Rafael is doing excellent work in bringing my dream of a OSGi Declarative Services editor to reality.

We’re making a lot of progress on the editor. I have been fighting with icons and polish work for the editor and that’s taking longer than I want. Rafael and I also need to start adding fancy validation to the editor. Expect a “beta” towards the end of this month / early next month. This will hopefully allow people to provide feedback and shape the editor.

Bartosz Michalik also hails from the GSOC program this year and will be working on some Equinox Transforms related tooling.


Jacek Pospychala
has also joined the PDE Incubator team recently and is going to work on some cool PDE skunkworks projects 🙂

Expect to see good things from these guys in the future 🙂