## 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.