Layout Image
  • Home
  • Training
  • Eclipse RCP Best Practices
  • About
  • Contact

Archive for Rich Client Platform – Page 2

RCP Best Practices – Know where to get help

by Patrick
October 9th, 2012

Getting started

  1. Introduction
  2. Know where to get help
  3. Use RCP for the right reasons
  4. Use the correct version of RCP
  5. Use the correct tools
  6. Set up a target platform
  7. Mirror Eclipse repositories
  8. Create a product configuration
  9. Define products with feature based dependencies
  10. Remove versions from product dependencies
  11. Always run code using a product configuration
  12. Get your product building right away

There’s a lot of information out there on the Eclipse Rich Client Platform. Here are a set of resources that can help you find the answers you need.

  • Planet Eclipse – Almost everyone blogging about Eclipse related topics is syndicated on the Planet Eclipse feed. Get a feed reader and subscribe today. 
  • Safari Books Online – Most of the books on Eclipse are available on the Safari service. This includes some books which are unfortunately out of print (e.g. The Standard Widget Toolkit). 
  • Eclipse Forums – The forums have a wealth of information. And remember that most of your questions will have been asked already. Search before you ask.
  • Blogs – There are many blogs devoted to Eclipse RCP and one of the best is written by Lars Vogel. The tutorials on his site are a must read for anyone learning Eclipse RCP.
  • Training – Based on my experience training hundreds of developers, there’s nothing that compares with training when it comes to getting immediately productive with Eclipse RCP. A few days of training can save you months of your time.
  • stackoverflow – stackoverflow is quickly becoming the default place to ask technical questions and this is true for RCP as well. There is an eclipse-rcp tag you can use to filter for RCP-related content, and you can even subscribe to this tag using your feed reader if you like. Thanks to Arieh for mentioning this in the comments.

I’m sure there are many good resources I’ve missed, so please help out and keep the listing going in the comments section. And if  you go through these options and still haven’t found the answer to your question, feel free to ask me. I’m always happy to help.

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories eclipse, Rich Client Platform
Comments (4)

Eclipse RCP Best Practices

by Patrick
October 8th, 2012

Getting Started

  1. Introduction
  2. Know where to get help
  3. Use RCP for the right reasons
  4. Use the correct version of RCP
  5. Use the correct tools
  6. Set up a target platform
  7. Mirror Eclipse repositories
  8. Create a product configuration
  9. Define products with feature based dependencies
  10. Remove versions from product dependencies
  11. Always run code using a product configuration
  12. Get your product building right away

Welcome to a new feature of the Modular Mind website, an attempt to catalog a set of best practices for developing Eclipse Rich Client Platform applications. I’ve been accumulating these best practices over the years and figure it’s time to do a brain dump. Hopefully this effort will spare others from the painful mistakes I’ve made.

This will not primarily be a set of tips and tricks, though there will be a few scattered around. And I’m going to do my best to avoid long-winded technical descriptions of the platform. There are books and tutorials available that cover most of this information. What I will include here are my opinions on the best way to do RCP development. 

I thought about writing a book, but to me a set of online posts allows for more community interaction. I want to present these practices in a way that provokes discussion and corrections if needed.  I reserve the right to update the text of these posts based on new information and your constructive criticism. I’ll of course give credit where credit is due.

The first post in this series should be posted tomorrow and hopefully more will arrive fairly frequently after that.

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories Best Practices, eclipse, Rich Client Platform
Comments (10)

What is RCP (and why should I care)?

by Patrick
May 4th, 2011

Eclipse RCP is an incredibly useful platform but it’s often misunderstood. Many teams start using RCP because it seems like a quick way to create Java user interfaces, but it’s so much more than that.

Unfortunately there are few online resources that break down the technical and business benefits associated with RCP. I’ve decided to take a shot at it and I welcome your feedback. Check out What is RCP and why should I care?

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories eclipse, Rich Client Platform
Comments (1)

Migrating RCP app to Helios – the disappearing executable

by Patrick
November 17th, 2010

I’m currently migrating an RCP application to Helios (3.6.1). I migrated over my target platform and fired up the export product wizard. The build completed successfully, but there was no executable in my output directory.

I spent a while chasing my tail trying to figure out if there was some hidden build error occurring, maybe a bad icon path or something. It finally occurred to me to actually examine the settings in the Product Configuration Editor, and I found that there is a checkbox labelled “The product includes native launcher artifacts” and it was not checked. Ugh.

What’s odd is that this checkbox existed in Eclipse 3.5 but it didn’t cause any problems until now. Anyway, I’m just throwing this out there to help any other poor souls who find themselves in this situation.

Now I can finally have lunch!

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories eclipse, Rich Client Platform, Tips, Uncategorized
Comments (2)

Interesting opportunity for RCP/OSGi experts

by Patrick
February 18th, 2010

One of the things I love about being a trainer is that I get to visit and work with so many development teams. Every group of developers has their own chemistry, culture, skills and domain interests. Sometimes I think I’m learning as much as the teams I’m training.

As it happens, one of the teams I’ve enjoyed working with the most is looking for a full-time RCP/OSGi project lead. The company, EXTOL, is a small, successful ISV that creates B2B integration tools. I don’t do this too often, but I wanted to pass this on because I think it’s such a cool opportunity. What’s so cool about it, you ask?

  • First, I don’t think there’s any better programming job than working for a small ISV. You can have a big impact and what you do matters. A lot.
  • EXTOL is re-architecting it’s products from the ground up (this is greenfield development) and they’re using a lot of interesting technologies – RCP, OSGi, EMF, GMF and more.
  • One of the coolest things they’re doing is leveraging OSGi on both the client-side and server-side. Very few projects are leveraging OSGi in this way, and I think the opportunities here are awesome.
  • Finally, the team is great. The developers are smart and easy to work with, management knows how to let developers be successful.

So what’s the catch? Well, whether there’s a catch or not depends on what you’re looking for in your life at the moment. EXTOL is located in a small town (Pottsville) in the hills of eastern Pennsylvania. It’s a beautiful area with lots to do outdoors, a great place to raise a family and much more. It’s not for everyone, but I imagine it would be great for more than a few of the developers I’ve met.

If you’re interested, here’s a post on the EXTOL blog that goes into more detail. They’ll also have developers at EclipseCon, so feel free to introduce yourself to one of them (or me) if you’re there as well.

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories Announcement, eclipse, OSGi, Rich Client Platform
Comments (4)

Decoupling Eclipse RCP products from feature versions

by Patrick
October 6th, 2009

I just spent some time updating the sample projects I provide to help Eclipse RCP developers get started with PDE Build. One of the main reasons for the update was to decouple the product configurations from specific feature versions, and I thought it was worth a post to talk about this.

What’s the problem?

By default, product configurations are hard-wired to specific feature versions. And if you decide to upgrade to a new version of the org.eclipse.rcp feature, for example, then your product configuration will break. You won’t be able to create valid run configurations based on your product and your builds will fail as well.

Luckily, we now get feedback in the Product Configuration Editor informing us that something is amiss.
products-and-features-1
So what can we do about this? Well one approach is to re-wire your product to the new version of the feature. You can do this by deleting and re-adding the feature, or you can also click the Properties button and modify the feature version manually. But this is a brittle approach, as you need to remember to update your configuration every time a feature version changes.

A better way

It’s now possible to decouple products from feature versions by replacing the feature version numbers with 0.0.0. In the future, a blank feature version will also be interpreted as 0.0.0 but as of Eclipse 3.5.1 the number must be added.

Also, there is a currently a defect in the Product Configuration Editor that results in a feature version entry of 0.0.0 being ignored. Of course, this won’t matter once blank versions are interpreted correctly, but for now it’s a problem. The solution is to open the product configuration file in a text or XML editor and change it manually.
products-and-features-2
The good news is that you only need to do this once. Your product will now accept the feature versions you supply in your target platform without complaint. Of course if you want to maintain the wiring between products and feature versions, by all means do that. But it’s nice to know we can decouple these pieces if we wish.

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories eclipse, Rich Client Platform, Tips
Comments (0)

Common Navigator Framework Tip #1 – Know when to use it

by Patrick
October 2nd, 2009

Of all the posts I’ve written on this blog, those on the Common Navigator Framework have been among the most popular. This is a little surprising to me, as I don’t hear CNF mentioned very frequently. My guess is that this framework is quietly becoming an essential part of Eclipse RCP.

Because of this, I’ve decided to write a set of posts discussing some of the CNF tips that I’ve found valuable over the years. And I think the best place to start is knowing when to use it. The Common Navigator Framework is complicated because it is trying to solve a complicated problem. It will only make your life easier if you’re using it for the purpose it’s designed for. So what is that purpose?

Modularity and extensibility

Well first, CNF was not created to make the development of navigators easier. If you have fairly normal navigator requirements in your application, CNF is probably not for you and you’ll save yourself a lot of headaches by omitting it.

Instead, CNF is designed to create navigators that support modularity and extensibility. With CNF, various OSGi bundles in your RCP application can contribute navigator content at runtime.
cnf-tips-1
CNF allows your bundles to declaratively contribute content to a navigator, and this is not a simple exercise. As users of CNF, we need to wire together navigators and their content in sophisticated parent/child relationships, and then overlay on top of this structure a set of actions, filters, drag/drop handlers, etc.

Does it have to be so hard?

Some of you might be thinking modularity is supposed to help us to simplify our applications. Why does this stuff have to be so darned hard? Well this is true to a point. Modularity allows us to take information hiding to an entirely new level and to the extent that we can hide complexity, our applications become simpler.

But when dealing with modular UIs in particular, the difficultly arises when we work with the joints or pivot-points between modules. In these specific cases, there is always complexity because we have to define in detail how our modules relate to each other.

So the next time you’re struggling with a complex CNF extension point, ask yourself whether you really need this functionality. If you do, then embrace CNF for what it is: a complex solution to a complex problem.

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories eclipse, Rich Client Platform, Tips
Comments (0)

A simple update manager for Eclipse RCP applications

by Patrick
September 29th, 2009

sparkle-ui

What would I like for Christmas? Thanks for asking! Well, besides a Mac mini, what I’d really like is a simple update manager for Eclipse RCP applications.

Up to now, we’ve had two options for updating our applications: wiring in the Update Manager or coding something from scratch. The problem is that the Update Manager is overkill for most RCP apps and the API is fairly complicated.

What I would like to have is an alternative to the Update Manager that provides very basic update functionality. Call it Update Manager Lite, if you like. For those of you running OS X, what I’m thinking of is something like the Sparkle framework that many Mac applications use.

Would this be of use to anyone else? I’ve opened a Bugzilla entry suggesting this and comments would be appreciated.

Update: There’s already a Bugzilla entry for this feature, so the above entry has been marked as a dup. Please direct any comments you have to the original Bugzilla entry. Thanks to Susan McCourt for pointing me in the right direction!

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories eclipse, Ramblings, Rich Client Platform
Comments (5)

Why Eclipse RCP? One company provides it’s answer.

by Patrick
September 9th, 2009

People often ask me what’s so special about Eclipse RCP and what types of projects it’s useful for. Well here is one answer from EXTOL, a software company that is using Eclipse RCP as the foundation for it’s own products.

The short answer, which I like a lot, is:

Adopting Eclipse RCP gets us out of the framework business.

But please read the entire post for all the details. It’s well worth your time.

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories eclipse, Rich Client Platform
Comments (0)

Renaming Eclipse RCP – Final results

by Patrick
September 9th, 2009

iStock_000008699441XSmallWell the results of the survey are in, and the clear favorite is the existing name: Eclipse RCP. While the original purpose of the survey was to create a short-list of names, I think the strong showing of the existing name means that the process should stop here. So long live Eclipse RCP!

For those of you interested in a summary of the results, 472 people took the survey (which is pretty good, I think). The top 5 name were:

  1. Eclipse RCP – 169 votes
  2. Eclipse Platform – 51 votes
  3. Aurora – 48 votes
  4. Corona – 38 votes
  5. Tangram – 32 votes

There were also many write-in votes, some of which were kind of amusing:

  1. Colbert (only 2 votes, sorry Stephen!)
  2. AlBlue’s Big Bundle of Fun
  3. Twilight

On a more serious note, I’d like to thank everyone who took the survey and all of those who expressed their opinion both publicly and privately. One of the great things about open-source software is that we are able to make decisions as a community, and I think this process has been a good example of that.

DZoneLinkedInDeliciousDiggEvernoteFacebookFriendFeedGoogle BookmarksRedditSquidooStumbleUponTechnorati FavoritesTwitterYahoo BookmarksShare/Save
Categories Announcement, eclipse, Rich Client Platform
Comments (8)
« Previous Page
Next Page »

Want to know more about RCP training?

Get information on private training options, pricing, availability and references.

Email address

About me

Patrick Paulin

Patrick Paulin is a software developer and trainer specializing in modular technologies such as OSGi and the Eclipse Rich Client Platform.

Patrick lives in Madison, Wisconsin with his wife and two daughters.

Email - patrick at modumind dot com

Looking for training in Europe?

My European partner vogella offers expert Android and Eclipse training, consulting and development support.


Modular Mind
Copyright © 2013 All Rights Reserved
iThemes Builder by iThemes
Powered by WordPress