<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html lang="en">
<HEAD>

<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2016. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<TITLE>Products extension point</TITLE>

<link rel="stylesheet" type="text/css" HREF="../book.css">
</HEAD>
<BODY BGCOLOR="#ffffff">
<h3>Products extension point</h3>
<p>The preferred mechanism for defining a product based on the Eclipse platform
  is to contribute to the
<a href="../reference/extension-points/org_eclipse_core_runtime_products.html"><b>org.eclipse.core.runtime.products</b></a>
extension point.  To do this, a plug-in simply declares the name and id of its
product,
as
well as the id of the application extension that should be run when the product
is
invoked. This is the technique used by the Eclipse
platform itself in defining the Eclipse product.  Here is the extension definition
found in <b>org.eclipse.platform</b>:</p>
<pre>&lt;extension id="ide" point="org.eclipse.core.runtime.products"&gt; 
	&lt;<b>product name="%productName" application="org.eclipse.ui.ide.workbench" description="%productBlurb"</b>&gt; 
		&lt;property name="windowImages" value="eclipse.png,eclipse32.png"/&gt; 
		&lt;property name="aboutImage" value="eclipse_lg.png"/&gt; 
		&lt;property name="aboutText" value="%productBlurb"/&gt; 
		&lt;property name="appName" value="Eclipse"/&gt; 
		&lt;property name="preferenceCustomization" value="plugin_customization.ini"/&gt; 
	&lt;/product&gt; 
&lt;/extension&gt; </pre>
A product extension is defined whose <b>application</b> id is "org.eclipse.ui.ide.workbench".
This is the application id defined by the plug-in <b>org.eclipse.ui.ide</b> in
its
contribution to the <a href="../reference/extension-points/org_eclipse_core_runtime_applications.html"><b>org.eclipse.core.runtime.applications</b></a>
extension point.

<pre>
&lt;extension
	<b>id="workbench"</b>
	point="org.eclipse.core.runtime.applications"&gt;
	&lt;application&gt;
		&lt;run
			class="org.eclipse.ui.internal.ide.IDEApplication"&gt;
		&lt;/run&gt;
	&lt;/application&gt;
&lt;/extension&gt; 
</pre>
<p>
This extension is defined with the same id that is referenced in the <b>application</b> property
of the product extension. (The fully qualified name, with plug-in prefix, is
used when referring to the
application id from the other plug-in.)  Using this mechanism, a separate plug-in
can define all of the product-specific branding, and then refer to an existing
plug-in's application as the application that
is actually run when the product is started.
</p>
<p>
In addition to the application, the <a href="../reference/extension-points/org_eclipse_core_runtime_products.html"><b>org.eclipse.core.runtime.products</b></a>
extension describes product customization properties that are used to configure the product's branding information.
This information is described as named properties.  Let's look again at that portion of the markup for the 
platform plug-in.</p>
<pre>	&lt;property name="windowImages" value="eclipse.png,eclipse32.png"/&gt; 
	&lt;property name="aboutImage" value="eclipse_lg.png"/&gt; 
	&lt;property name="aboutText" value="%productBlurb"/&gt; 
	&lt;property name="appName" value="Eclipse"/&gt; 
	&lt;property name="preferenceCustomization" value="plugin_customization.ini"/&gt; </pre>
The possible property names that are honored by the platform for product customization are defined in
<b><a href="../reference/api/org/eclipse/ui/branding/IProductConstants.html">IProductConstants</a></b>.
See the javadoc for a complete description of these properties and their values.  We'll look at these
further in <a href="product_configproduct.htm">Customizing a product</a>.
</p>
<p>
Product customization properties are also used by other platform services such as to
<a href="ua_intro_universal_contributing.htm">configure the Universal Welcome/Intro</a>.
</p>

</BODY>
</HTML>
