# Products

###### Identifier:

org.eclipse.core.runtime.products

###### Since:

3.0

###### Description:

Products are the Eclipse unit of branding. Product extensions are supplied by plug-ins wishing to define one or more products. There must be one product per extension as the extension id is used in processing and identifying the product.

There are two possible forms of product extension, static and dynamic. Static product extensions directly contain all relevant information about the product. Dynamic product extensions identify a class (an `IProductProvider`) which is capable of defining one or more products when queried.

###### Configuration Markup:

<!ELEMENT extension ((product | provider))>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED

>

<!ELEMENT product (property*)>

<!ATTLIST product

application CDATA #REQUIRED

name CDATA #REQUIRED

description CDATA #IMPLIED

>

- application - the default application to run when running this product
- name - the human-readable name of this product
- description - the human-readable description of this product

<!ELEMENT property EMPTY>

<!ATTLIST property

name CDATA #REQUIRED

value CDATA #REQUIRED

>

- name - the key under which this property is stored
- value - the value of this property

<!ELEMENT provider (run)>

details of a product provider

<!ELEMENT run EMPTY>

<!ATTLIST run

class CDATA #REQUIRED

>

- class - the fully-qualified name of a class which implements `org.eclipse.core.runtime.IProductProvider`.

###### Examples:

Following is an example of static product declaration:

       <extension id="coolProduct" point="org.eclipse.core.runtime.products">
          <product name="%coolName" application="coolApplication" description="%coolDescription">
              <property name="windowImages" value="window.gif"/>
              <property name="aboutImage" value="image.gif"/>
              <property name="aboutText" value="%aboutText"/>
              <property name="appName" value="CoolApp"/>
              <property name="welcomePage" value="$nl$/welcome.xml"/>
              <property name="preferenceCustomization" value="plugin_customization.ini"/>
          </product>
       </extension>

The following is an example of a dynamic product (product provider) declaration: Following is an example of an application declaration:

       <extension id="coolProvider" point="org.eclipse.core.runtime.products">
          <provider>
             <run class="com.example.productProvider"/>
          </provider>
       </extension>

###### API Information:

Static product extensions provided here are represented at runtime by instances of `IProduct`. Dynamic product extensions must identify an implementor of `IProductProvider`. See `org.eclipse.ui.branding.IProductConstants` for details of the branding related product properties defined by the Eclipse UI.

###### Supplied Implementation:

No implementations of `IProductProvider` are supplied.

Copyright (c) 2004, 2005 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html