Products and features

An Eclipse based product is a stand-alone program built with the Eclipse platform. A product may optionally be packaged and delivered as one or more features, which are simply groupings of plug-ins that are managed as a single entity by the Eclipse update mechanisms.

Products include all the code and plug-ins needed to run them.  This includes a Java runtime environment (JRE) and the Eclipse platform code.  The plug-in code, JRE, and Eclipse platform are typically installed with a product-specific installation program.  Product providers are free to use any installation tool or program that is appropriate for their needs. 

Once installed, the user launches the product and is presented with an Eclipse workbench configured specifically for the purpose supported by the product, such as web development, C++ program development, or any other purpose.  The platform makes it easy to configure labels, about dialogs, graphics, and splash screens, so that the user has no concept of a platform workbench, but instead views the workbench as the main window of the product itself.

The top level directory structure of such a product looks something like this for a hypothetical product called "AcmeWeb" that has been installed on a Windows platform:

acmeweb/
	acmeweb.exe		(product executable)
	eclipse/		(directory for installed Eclipse files)
		.eclipseproduct	(marker file)
		artifacts.xml (bundle pool contents)
		eclipse.exe
		eclipse.ini	
		configuration/	
			config.ini
		dropins/
		jre/
		features/	(installed features if any)
			com.example.acme.acmefeature_1.0.0/
				feature.xml
			...
		plugins/
			org.eclipse.equinox.launcher_1.0.0.v20070530.jar
			org.eclipse.equinox.launcher.win32.win32.x86/
			com.example.acme.acmefeature_1.0.0/
				plugin.xml
				about.ini
				about.html
				about.mappings
				about.properties
				acme.png
				splash.bmp
			com.example.acme.acmewebsupport_1.0.0/
			...
		links/
			...
		p2/
			...

There are actually two ways of defining a product in Eclipse. The preferred mechanism is to use the products extension point. This extension point allows you to define your product and customize branding such as splash screens, window icons, and the like.