
<h1>BPEL Project Extension Points</h1>
Last modified on December 2, 2005

<p>
This document describes the extension points in the BPEL
project. It contains both the existing extension points and the ones required
in the future. It also groups the extension points in editor, model and runtime
related. In the future it might include others groups like validator, etc.
</p>

<h2>Existing Extension Points</h2>

<h3>Model</h3>

<p>TBD</p>

<h3>Editor</h3>

<h4>Palette Items and Categories</h4>

<p>
Users are able to add new items and new categories to the editor palette. If the specified category does not exist
a new one is created otherwise the existing one is reused. Item classes extend
org.eclipse.bpel.ui.util.BPELCreationToolEntry .
</p>

<p><i>Host plug-in:</i> org.eclipse.bpel.common.ui</p>

<p><i>Extension Point:</i> palleteAdditions</p>

<p><i>Example:</i></p>
<pre>
&lt;extension point="org.eclipse.bpel.common.ui.paletteAdditions"&gt;
    &lt;additions targetEditor="org.eclipse.bpel.ui.bpeleditor"&gt;
        &lt;addition category="basicActions"
            class=" org.eclipse.bpel.ui.MyPaletteItem"/&gt;
    &lt;/additions&gt;
&lt;/extension&gt;
</pre>

<h4>Properties Pages</h4>

<p>
Users are able to add new tabs and sections to the properties view. This extension point is used by the BPEL
editor but is declared in another plug-in. The host plug-in might change in the near future if this framework
is contributed to the Eclipse Platform.
</p>

<p><i>Host plug-in:</i> org.eclipse.wst.common.ui.properties</p>

<p><i>Extension Point:</i> propertyContributor, propertyTabs, propertySections</p>

<p><i>Example:</i></p>
<pre>
  &lt;extension point="org.eclipse.wst.common.ui.properties.propertyContributor"&gt;
     &lt;propertyContributor
			contributorId="org.eclipse.bpel.ui.bpeleditor"
			typeMapper="org.eclipse.bpel.ui.properties.TypeMapper"
			labelProvider="org.eclipse.bpel.ui.properties.PropertiesLabelProvider"&gt;
     &lt;propertyCategory category="description"/&gt;
     &lt;/propertyContributor&gt;
  &lt;/extension&gt;

  &lt;extension point="org.eclipse.wst.common.ui.properties.propertyTabs"&gt;
     &lt;propertyTabs contributorId="org.eclipse.bpel.ui.bpeleditor"&gt;
        &lt;propertyTab
              label="Description"
              category="description"
              id="org.eclipse.bpel.ui.tabs.description"/&gt;
     &lt;/propertyTabs&gt;
  &lt;/extension&gt;

  &lt;extension point="org.eclipse.wst.common.ui.properties.propertySections"&gt;
     &lt;propertySections contributorId="org.eclipse.bpel.ui.bpeleditor"&gt;
        &lt;propertySection
               tab="org.eclipse.bpel.ui.tabs.description"
               class="org.eclipse.bpel.ui.properties.NameSection"
               id="org.eclipse.bpel.ui.sections.Name"&gt;
            &lt;input type="org.eclipse.bpel.model.Activity"/&gt;
            &lt;input type="org.eclipse.wst.wsdl.ExtensibilityElement"/&gt;
            &lt;input type="org.eclipse.bpel.model.Variable"/&gt;
            &lt;input type="org.eclipse.bpel.model.CorrelationSet"/&gt;
            &lt;input type="org.eclipse.bpel.model.PartnerLink"/&gt;
            &lt;input type="org.eclipse.bpel.model.Process"/&gt;
            &lt;input type="org.eclipse.bpel.model.Link"/&gt;
        &lt;/propertySection&gt;
  &lt;/extension&gt;
</pre>

<h4>Actions</h4>

<p>
Users are able to add new types of activities to the editor. It requires having a model that supports the new activities.
</p>

<p><i>Host plug-in:</i> org.eclipse.bpel.ui</p>

<p><i>Extension Point:</i> actions</p>

<p><i>Example:</i></p>
<pre>
&lt;extension point="org.eclipse.bpel.ui.actions"&gt;
    &lt;category
        name="Empty"
        id="org.eclipse.bpel.ui.actions.category.basic"/&gt;
    &lt;action
        class="org.eclipse.bpel.ui.bpelactions.SimpleAction"
        categoryId="org.eclipse.bpel.ui.actions.category.basic"
        id="org.eclipse.bpel.ui.action.empty"/&gt;
 &lt;/extension&gt;
</pre>

<h4>Expression Editors</h4>

<p>
BPEL defines in its specification that any expression language can be used in its expressions. This extension
point makes it possible to link an expression language to a particular editor. So when the user needs to edit
a particular expression, the proper expression language editor is presented.
</p>

<p><i>Host plug-in:</i> org.eclipse.bpel.ui</p>

<p><i>Extension Point:</i> expressionEditors</p>

<p><i>Example:</i></p>
<pre>
&lt;extension point="org.eclipse.bpel.ui.expressionEditors"&gt;
    &lt;editor
        label="XPath 1.0"
        class="org.eclipse.bpel.ui.expressions.XPathExpressionEditor"
        expressionLanguage="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt;
    &lt;/editor&gt;
&lt;/extension&gt;
</pre>

<h4>Preference Page (org.eclipse.bpel.ui.preferences)</h4>

<p>
Users are able to add new preference pages. This extension point is used by the BPEL editor but is declared
in another plug-in. The BPEL UI plug-in currently contributes one preference page.
</p>

<p><i>Host plug-in:</i> org.eclipse.ui</p>

<p><i>Extension Point:</i> preferencePages</p>

<p><i>Example:</i></p>
<pre>
&lt;extension point="org.eclipse.ui.preferencePages"&gt;
    &lt;page
        name="BPEL Designer"
        class="org.eclipse.bpel.ui.preferences.BPELPreferencePage"
        id="org.eclipse.bpel.ui.preferences"&gt;
    &lt;/page&gt;
&lt;/extension&gt;
</pre>

<h4>Hover Helpers</h4>

<p>
Users can add customized hover helpers to edit parts. The class in the extension point needs to implement
org.eclipse.bpel.ui.IHoverHelper.
</p>

<p><i>Host plug-in:</i> org.eclipse.bpel.ui</p>

<p><i>Extension Point:</i> hoverHelpers</p>

<p><i>Example:</i></p>
<pre>
&lt;extension point="org.eclipse.bpel.ui.hoverHelpers"&gt;
    &lt;hoverHelper
        class="org.eclipse.bpel.ui.MyHoverHelper"&gt;
    &lt;/hoverHelper&gt;
&lt;/extension&gt;
</pre>

<h4>Model Listener</h4>

<p>
Users can listen to all model change notifications through this extension point. The class has to implement
org.eclipse.bpel.ui.extensions.IModelListener.
</p>

<p><i>Host plug-in:</i> org.eclipse.bpel.ui</p>

<p><i>Extension Point:</i> modelListener</p>

<p><i>Example:</i></p>
<pre>
&lt;extension point="org.eclipse.bpel.ui.modelListener"&gt;
    &lt;listener
        id="org.eclipse.bpel.extensions.ui.listener"
        class="org.eclipse.bpel.ui.MyModelListener"&gt;
    &lt;/listener&gt;
&lt;/extension&gt;
</pre>

<h2>Existing Extension Points</h2>

<h3>Model</h3>

<p>TBD</p>

<h3>Editor</h3>

<p>
Palette Look & Feel<br>
Tray Look & Feel<br>
Dialogs<br>
Diagram Look & Feel<br>
</p>

<h3>Runtime</h3>

<p>
Extend faults thrown by the engine so they can be handled in the Fault Handler.
</p>

