StreamBase Extension Points View

Introduction

The StreamBase Extension Points view shows a tree view of all Extension Point operators in use in any EventFlow or StreamSQL module in the current workspace, along with each module that implements the interface referenced in each Extension Point.

Use this view to open the EventFlow and StreamSQL files referenced in the view:

  • Top level entries represent interfaces. Double-click a top-level interface name to open the EventFlow and StreamSQL file that contains that interface (as shown in gray text), with that interface selected and centered in the Editor view.

  • Second-level entries represent modules that implement each interface. Double-click a module name to open it in the EventFlow or StreamSQL Editor.

Context Menu

The context menu in the Extension Points view has the following entries:

Create New Extension

Use this entry to create a new module that implements the selected interface, and at the same time adds the new module and its alias name to the Extension Point operator that references that interface. This menu entry performs the following actions in a single pass:

  1. Creates a new module that implements the selected interface.

  2. Adds the newly created module to the Module instances grid in the Properties view for the selected interface.

  3. Assigns the newly created module a name to be entered in the Name column in the same Module instances grid.

See Tutorial for the Create New Extension Menu Item below for an example of this process.

Add Extension

Use this entry to add an existing module that implements the selected interface to the Extension Points operator that references that interface. You must have already created a module that extends the selected interface, and it must be in the current project. This context menu performs the following actions:

  1. Switches to the Properties view for the selected Extension Point operator and opens its Modules tab.

  2. Opens the Add Module Instance dialog as if you had clicked the Add button on the Modules tab.

Open

Opens the EventFlow Editor or StreamSQL Editor for the selected entry. This menu entry is an alias for the double-click actions described in Introduction.

Tutorial for the Create New Extension Menu Item

This section provides an example of the steps for using Create New Extension from the context menu of the Extension Points view.

The ExtensionPoint.sbapp sample is part of the operator group of samples shipped with StreamBase. This simple application implements the Multiplier.sbint interface with an Extension Point named Multiply. The Extension Point has two module instances, Doubler.sbapp and Tripler.sbapp, which double and triple their integer input, respectively.

We will add a third module instance named Quadrupler.sbapp. Follow these steps:

  1. Load the operator sample:

    • From the top menu, select File>Load StreamBase Sample.

    • Select operator from the Data Constructs and Operators category.

    • Click OK.

  2. In the Project Explorer view, open ExtensionPoint.sbapp.

  3. Double-click the Multiply component to open its Properties view. Open the Modules tab and notice that there are two module instances:

    Module Name
    Double.sbapp double
    Tripler.sbapp triple
  4. Open the StreamBase Extension Points view.

  5. Select the entry for Multiply, then right-click and select Create New Extension from the context menu.

  6. This opens the New StreamBase EventFlow Application dialog with three differences from the standard version:

    • The sample_operator project folder is preselected.

    • The Implements interface control is no longer a check box, it is now a non-editable field with Multiplier.sbint filled in.

    • There is a new field, Module name in Extension Point.

  7. Fill in the empty fields as follows:

    EventFlow Application file name Quadrupler.sbapp
    Module name in Extension Point quadruple
  8. Click Finish. Studio opens an EventFlow Editor session on the new file, Quadrupler.sbapp. The two input streams and one output stream from the Multiplier interface are entered for you, defined with named schemas imported from the interface file.

  9. Complete the implementation of Quadrupler.sbapp with these steps:

    1. From the same project, open Tripler.sbapp.

    2. Select the Union and Triple components and copy them to the clipboard.

    3. Re-open Quadrupler.sbapp and paste the copied components.

    4. Connect the streams and components. Tip: Use Ctrl+A to select all components, then type the keyboard shortcut x x.

    5. Open the Properties view for the copied Triple component and change its name to Quadruple. In the Output Settings tab, change the Add newValue expression to value*4. In the next line, change Tripler.sbapp to Quadrupler.sbapp.

    6. Save Quadrupler.sbapp.

  10. Now reopen ExtensionPoint.sbapp, and look again at the Properties view for the Multiply component as in step 3. Notice that the Module instances grid already has an entry for the new module.

    Module Name
    Double.sbapp double
    Tripler.sbapp triple
    Quadrupler.sbapp quadruple
  11. Run ExtensionPoint.sbapp and send it a tuple with any integer and action=null. Examine the Output Streams view and notice that the new module is already working.