CarbonRider

You make a matrix, you define the limits.

Eclipse product export with features

May21

Sometime back, I started doing a formal release of one of the Eclipse RCP product, I was working on. While doing the release, I came across lot of problems. My product has very simple structure and it consists of

  1. Plug-in (Core functionality for RCP)
  2. A Feature (Contains above plug-in)
  3. Another feature (To list all the eclipse dependencies)
  4. Product definition plug-in (Contains branding and workbench details)
  5. Product definition (Created inside above plug-in)

That seems pretty simple huh!!! But while exporting above structure, I came across lot of things that one may find useful. Let evaluate everything from the beginning.

Simple Plug-n
I first started with the definition of simple plug-in, refer the following screenshot for details. Make sure the option for “Rich Client Application” is selected as “No”.

Sample Plugin

Sample Plugin

To begin with, I selected the template for “Hello,World” in next step

Sample plug-in template

Sample plug-in template

Feature for plug-in
RCP product configuration allows two options while clubbing plug-ins. You can either use “Feature” based product or “Plug-in” based product. I prefer “Feature” based product, as it helps to categorise plug-in easily. Create “Feature” project, which will look similar to following

Sample Feature

Sample Feature

Feature for Eclipse dependencies
This step isn’t mandatory, you can still list down all the required plug-ins in one feature. But as I said earlier, features provide better way to categorise plug-ins. Hence, I preferred to have a separate feature that will only list down the plug-ins that I have developed and another feature to just list down eclipse dependencies required in order to export product. Check below screenshot for details.

Sample Dependencies Feature

Sample Dependencies Feature

Plug-in for Product definition
It’s time to create another plug-in which will be useful for branding the product with Splash screen and intro. Well again, you have a choice to club everything within first plug-in that we created or you can create separate one. I prefer separating things (SRP). Check below screenshot and yeah most important this time choose “Yes” for “Rich Client Application” section.

Sample Product Plug-in

Sample Product Plug-in

Product Definition
Time to create product definition, which will provide us finer control over various customizations for our very own product. Create the product definition, inside the plug-in just created above.

Sample Product Definition

Sample Product Definition

Open the product configuration file and make sure that the “Product” and “Application” drop-downs have appropriate value selected.

Sample Product with Application

Sample Product with Application

Also go to “Dependencies” tab and selected the two features created in the above step.

Product With Features

Product With Features

Lets open the configuration for the feature which will only contain plug-ins created by us. Make sure both the plug-ins (including Plug-in for product definition) is added to the feature.

Plug-in to feature

Plug-in to feature

Once the plug-ins are added, it is time to switch to the feature which should list down eclipse dependencies. But wait!!! do we know the list of dependencies that should be included in the feature. Definitely not, so how can we get the list? Eclipse has a nice feature, which will help us to solve this mystery. Just open the product configuration and locate “Validate” icon available in the toolbar. Click on the icon and it will list down dependencies required by each plug-in we have included in the feature list.

Missing Product Dependencies

Missing Product Dependencies

Note that you will have to click this icon multiple times as and when you start adding the depending plug-ins to the feature. Once all the dependencies are satisfied, the “validate” option will indicate that the product configuration is valid. If you face a problem indicating “Missing Constraint : Import-Package: org.w3c.dom.css…”, just ignore it. Now you are ready to export the product, choose “Export an Eclipse product” and it will prompt you for location where the product should be exported. Here is the final output

RCP Final

RCP Final

Click here to download the source code for all the projects mentioned above. The plug-ins have been tested with Eclipse Kepler (4.3.2)

posted under Eclipse | No Comments »

Eclipse Context Help – Complete

March9

You may be confused as why I am posting about the feature which is covered by so many posts/articles/documentation. Though there are many sites which does this job, I found one or the other configuration aspect is missing from either of the site. I personally followed many articles and could never able to get the context help worked. I had to visit many sites and understand what are all combined configuration aspects are required to get it done. This provoked a thought to put all those things together. Here we go
Read the rest of this entry »

posted under Articles | No Comments »

I am lost

December25

Long time, no see. Nothing came from my side, for a long time. Hmm, thats bit scary and even made me think, as what I am doing? I am bit lost these days, lost in the plethora of information, reading lot of books on topics ranging from Javasript, Java, .Net, performance, coding best practices etc. (list will not end and the backlog is still increasing). The sad part is I am not able to use my knowledge at my workplace and mostly it is fact that I must accept I am working in a country where management is more of value than hard-core technical skills (hmm god knows, I can tell you from my experience).
Read the rest of this entry »

posted under personal | 3 Comments »

Nodejs and custom modules on windows

August20

It has been a long time, I was planning to hit on Node.js, but I got stuck with other topics and somehow it slipped my mind. Few days back, I thought to give it a try and check what Node.js offers. I like the idea of using JavaScript to write code for Node.js (After all thats my first programming language and the most fav. language :P ).
The first baby step with “Hello World” and writing your own web server, made me comfortable and I realised its so much of fun to write code for nodejs as you have to just learn the APIs and start modularizing them. As soon as I started making the progress, I found an example making use of Node.js’s custom module “connect”.
Read the rest of this entry »

posted under Articles | No Comments »

Books that help to write better code

July14

I have been reading lot of books on various frameworks and technologies from my college days. I am always fascinated by new technologies and frameworks that help to ease developer’s life by writing less and manageable code. While all these years, I was spending too much time on reading syntaxes and APIs exposed by various languages and frameworks, from last 2 months, things have taken different turn. I put too much emphasis on using design patterns, but I was introduced to quite a few good books by my seniors and I was really surprised, the way these books have changed my thoughtprocess. No, I dont mean stop using design patterns or blah blah… but before start using all those geeky words like scalability, design patterns and other stuffs, you need to first learn to write clean code. Yes! here are some of the best books, I have been reading.
Read the rest of this entry »

posted under Articles | No Comments »

Firefox 22 Installer – usability

July6

It was just like a regular day and I was going through few sites, suddenly I felt to checkout if there is any new version of Firefox has came up (I check bi-weekly). And yeah, there was new version available. As usual, I tried to upgrade using the Help > About firefox menu and it showed that there is new version is availble. While usually it updates the firefox without doing much and just by opening About box, but this time it failed. So to get the latest version, I tried to download it manually. Hmm… and then I was bit shocked by the installer.
Read the rest of this entry »

posted under Articles | No Comments »

Is it wise to use unsafe – Hidden secret of Java

June15

I have been visiting quite a few sites and going through few forums, when I stumbled upon an article talking about the hidden weapon of Java, not made publicly known due to some reasons. But it is claimed that many of the Java internals and third party softwares do use this API to gain monstrous power.
While we have learned from academic days that heap space is home for Java objects, it is a place where the objects come to life and die. JVM with its GC algorithm makes the kill and creates space for new objects. While in the process of moving objects from various places (eden, young generator etc), it sometimes may bring down the application performance to its knees and can prove costly affair.
Whlie GC has been seen as life savior for people who dont want to worry about memory management, it also imposed restriction in terms of no control over deciding fate of the object as when it will get garbage collected. While this may not sound so serious problem as people end up allocating higher heap space for JVM (without realising the fact that it is actually hampering performance), some felt it bit uncomfortable (geeks from C, C++ playing with memory functions).
Read the rest of this entry »

posted under Articles | No Comments »

Unusual Graphs with JavaScript – Infovis Toolkit

March18

I was looking for a tree based graph displaying library possibly in JavaScript. The purpose of this library was to purely demonstrate pure technical things but instead of just collapse and expand functionality, I needed something more which will catch user attention. While going through nearly 70-80 libraries, I found an interesting library which almost hit the bulls-eye.

JavaScript Infovis Toolkit

This library provides quite an interesting implementation of tree, graph based implementations which can be used at various places in an application. I will be using this library in one of the implementation I am assigned to, but I would suggest you to have a look at it. It is worth giving a shot.

posted under Articles | No Comments »

Apache Forrest – Document Generation

March17

I have been working on document generation utility and decided to explore what options are already available. The features I was looking into the framework were
1. Less learning curve
2. Extendable
3. Various Output Formats
4. Pluggable with Java
5. Open Source and Freeware
6. Should have popular community
Read the rest of this entry »

posted under Articles | No Comments »

Spring XML extension

December9

Few days back came across fantastic feature of Spring framework – Extensible XML authoring. I was in a need of introducing my own custom tags in Spring bean configuration file and found Spring provides a very easy mechanism to handle this requirement. I wont get into the details of how to do this as the Spring site does it pretty well.

http://static.springsource.org/spring/docs/2.0.x/reference/extensible-xml.html

posted under Articles | No Comments »
« Older Entries