blob: 4d2db308a870d54f473e7b325ef1ed37fcdbd948 [file] [log] [blame]
<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>