BPEL Project Extension Points

Last modified on December 2, 2005

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.

Existing Extension Points

Model

TBD

Editor

Palette Items and Categories

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 .

Host plug-in: org.eclipse.bpel.common.ui

Extension Point: palleteAdditions

Example:

<extension point="org.eclipse.bpel.common.ui.paletteAdditions">
    <additions targetEditor="org.eclipse.bpel.ui.bpeleditor">
        <addition category="basicActions"
            class=" org.eclipse.bpel.ui.MyPaletteItem"/>
    </additions>
</extension>

Properties Pages

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.

Host plug-in: org.eclipse.wst.common.ui.properties

Extension Point: propertyContributor, propertyTabs, propertySections

Example:

  <extension point="org.eclipse.wst.common.ui.properties.propertyContributor">
     <propertyContributor
			contributorId="org.eclipse.bpel.ui.bpeleditor"
			typeMapper="org.eclipse.bpel.ui.properties.TypeMapper"
			labelProvider="org.eclipse.bpel.ui.properties.PropertiesLabelProvider">
     <propertyCategory category="description"/>
     </propertyContributor>
  </extension>

  <extension point="org.eclipse.wst.common.ui.properties.propertyTabs">
     <propertyTabs contributorId="org.eclipse.bpel.ui.bpeleditor">
        <propertyTab
              label="Description"
              category="description"
              id="org.eclipse.bpel.ui.tabs.description"/>
     </propertyTabs>
  </extension>

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

Actions

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

Host plug-in: org.eclipse.bpel.ui

Extension Point: actions

Example:

<extension point="org.eclipse.bpel.ui.actions">
    <category
        name="Empty"
        id="org.eclipse.bpel.ui.actions.category.basic"/>
    <action
        class="org.eclipse.bpel.ui.bpelactions.SimpleAction"
        categoryId="org.eclipse.bpel.ui.actions.category.basic"
        id="org.eclipse.bpel.ui.action.empty"/>
 </extension>

Expression Editors

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.

Host plug-in: org.eclipse.bpel.ui

Extension Point: expressionEditors

Example:

<extension point="org.eclipse.bpel.ui.expressionEditors">
    <editor
        label="XPath 1.0"
        class="org.eclipse.bpel.ui.expressions.XPathExpressionEditor"
        expressionLanguage="http://www.w3.org/TR/1999/REC-xpath-19991116">
    </editor>
</extension>

Preference Page (org.eclipse.bpel.ui.preferences)

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.

Host plug-in: org.eclipse.ui

Extension Point: preferencePages

Example:

<extension point="org.eclipse.ui.preferencePages">
    <page
        name="BPEL Designer"
        class="org.eclipse.bpel.ui.preferences.BPELPreferencePage"
        id="org.eclipse.bpel.ui.preferences">
    </page>
</extension>

Hover Helpers

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

Host plug-in: org.eclipse.bpel.ui

Extension Point: hoverHelpers

Example:

<extension point="org.eclipse.bpel.ui.hoverHelpers">
    <hoverHelper
        class="org.eclipse.bpel.ui.MyHoverHelper">
    </hoverHelper>
</extension>

Model Listener

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

Host plug-in: org.eclipse.bpel.ui

Extension Point: modelListener

Example:

<extension point="org.eclipse.bpel.ui.modelListener">
    <listener
        id="org.eclipse.bpel.extensions.ui.listener"
        class="org.eclipse.bpel.ui.MyModelListener">
    </listener>
</extension>

Existing Extension Points

Model

TBD

Editor

Palette Look & Feel
Tray Look & Feel
Dialogs
Diagram Look & Feel

Runtime

Extend faults thrown by the engine so they can be handled in the Fault Handler.

Graduation
This project has graduated!