Build your own Eclipse Marketplace!
28. September 2010
With the Eclipse 3.6 release the Eclipse Marketplace client was shipped. This interface for installing new bundles and features is much more user-friendly than the classic update-manager and provides a new way of installing additional components to your Eclipse installation, although the technical concepts didn’t change. But how can you use this nice peace of software for your needs, probably for your RCP applications, or a marketplace controlled by your own? I’ll show you.
The motivation
The motivation for an own marketplace was that we need for our project Remus Information Management an easy way to install new components. We’re using the underlying framework (which is btw an official Eclipse project) to create an Eclipse-application which does Information management and is extendable in many ways. The problem is that we’re using a lot of third-party-libraries which will change very often and we have a primary user group that is not familiar with Eclipse as IDE and all that IT- and developer-stuff. So we have to provide an easy way to allow the installation of additional components in a very user-friendly way.
I personally was always impressed by the Connector-Discovery from Mylyn and was very happy to read the announcement of a similar tool which can be used for all eclipse based components.
The solution
The marketplace client is using an xml based communication interface to gather information regarding available bundles at a marketplace. So we adapted this interface and wrote a small and simple web-application which can handle all the requests coming from such a client. The result is an Open-Source project called “Marketplace catalog for Eclipse” which is hosted on sourceforge.net. All source-code is licensed under EPL, so feel free to consume this project, integrate your own market in your next RCP project or to provide an “exclusive” marketplace with your bundles.

The future
We reached our main goal, to provide in the next release of Remus IM a simple way of installing new components with a system controlled 100% by our own. The current implementation of the server-software has still no web-interface to add/edit or delete bundles. We’ll extend the existing marketplace connector of Remus IM which is read-only at the moment with editing capabilities to manage your marketplace offline. If you are online, you can commit your changes and all consumers of your marketplace can browse through your updated content.




Any reason why you chose sourceforge over Eclipse Labs[1]? What would be really nice is if there were a way to make it work directly with a project hosted there.
[1] http://eclipse.org/org/foundation/eclipselabs/faq.php
Comment by Cole Markham — 28. September 2010 @ 15:50
Even though this is a good idea, I think the discovery UI is probably best suited for what you are trying to do: have your users discover about particular extensions to your domain (much like mylyn does).
The market place is something much more global that spans the context of multiple plugins/applications. You can find slides from Steffen Pingel and Susan McCourt on the discovery ui on the eclipsecon 2010 website.
Comment by Pascal Rapicault — 29. September 2010 @ 01:34
Hello,
Nice article! This market place concept is new to me (we’re still using Galileo for our RCP development) but it looks really good! Are you saying that
- you include the eclipse marketplace client in your RCP app
- and your project provides the server-side to supply the content of the marketplace.
- this server-side project can be modified to include one’s own content?
We’re an academic group working on software for the life sciences and this seems a really nice way to deploy functionality to non-IT savvy end users.
Thanks
Richard
Comment by Richard Adams — 30. September 2010 @ 01:30
Nice. For my purposes, I’d like to have the possibility to add/edit/delete bundles using the file system instead of a database. Is there any additional information stored within the database, or could it then run independently from any database?
Comment by Ralf Zahn — 2. October 2010 @ 07:50
[…] Last week I wrote about using the Eclipse marketplace client for your own needs. Today I want to show you based on the RCP Mailtemplate how to integrate your own marketplace into your own RCP application. […]
Pingback by rich client 2.0 » Extending the Eclipse RCP Mailtemplate with Marketplace functionality — 5. October 2010 @ 12:16
I downloaded the war file, but what steps do I have to do to configure the server?
Comment by Hannes — 11. October 2010 @ 10:24
@Cole
IMHO it doesn’t matter where the project is hosted. I prefer sourceforge.
@Pascal
Probably you’re right. But the difference in smaller applications is not so relevant IMHO. The marketplace provides several other interesting features, like the reference of a web-interface.
@Richard
Correct.
@Ralf
The metadata is stored in the database. The bundles and images itself will be just referenced by a URL.
@Hannes.
Follow the steps at https://sourceforge.net/p/marketplace-cat/home/
Comment by Tom Seidel — 25. October 2010 @ 18:00