Components and Tags  Locate

This section describes selected components and tags of the Business Service Control (BSC) framework and components of the Business Service Control. The BSC Framework is a set of components and tags used by developers to develop Business Service Control components. For complete documentation of these components, see the Java Doc located in the REGISTRY_HOME/doc/bsc-api directory.

Framework Components  Locate

This section describes the following component types:

Query
Wizard
Result
Taxonomy
Util

Query  Locate

In this section, we will show you how Query components are used in Business Service Control. We explain query components on the page shown in Figure 14 with a page from a wizard for creating a new business service

Figure 14. Query Components

Query Components

The service name in the drop down list under the rewrite service option is produced via the Entity chooser component

The following fields in Figure 14 are produced via Taxonomy filters components:

  • The Usage, Release date, Version and Milestone fields are produced by inputCategorySetter component.

  • The Certification field is produced by the selectCategorySetter component

Entity Choosers  Locate

The Entity Chooser component is used to select one entity from a list of entities obtained by a query.

There are four types of Entity Choosers, each representing a UDDI data structure:

  • businessChooser for selecting business entities

  • bindingChooser for selecting binding templates.

  • serviceChooser for selecting business services

  • tmodelChooser for selecting technical models.

All these choosers have the similar functionality.

Table 96.  entityChooser Parameters

ParamTypeDescriptionRequiredI|O
filterFind_entity (Find_business , Find_service, Find_binding or Find_tModel)Filter used for getting a list of entities. If it is not specified, all entities will be fetched.optionalin
resultObjectObjectThe bean where key of the selected entity will be saved.requiredin
resultPropertyStringThe property of the resultObject bean, into which the key will stored.requiredin
sortStringThe sorting mode can be asc (for acsending) or desc (for descending). Entities are sorted in the list according to their name.optionalin
hintStringString used as a hint which appears if the pointer is on the component view area.optionalin
changeActionStringAction sent to the parent component when a selection has changed.optionalin
detailTaskStringTask used for rendering the detail of a selected entity.optionalin
entityKeyNameStringName of the entity key used in detailTask for getting details on an entity.optionalin
emptyMessageStringValue displayed if there are no entities to be displayed.optionalin
pageSizeInteger Maximum number of entities to be displayed in the list; default value is 50.optionalin
entitiesTruncatedMessageStringValue displayed in the list if a query generates more entities than pageSize allows. Default value is "..."optionalin
mandatoryPermissionStringPermission the user must have on an entity in order for it to be selected. In other words an additional filter criterion. Possible values are create, edit or delete. optionalin

Example 40.  entityChooser Example

<%-- Import the syswf framework custom tag library. --%>
<%@ taglib prefix="syswf" uri="http://systinet.com/jsp/syswf" %>
...
<syswf:component prefix="business" name="businessChooser">
    <syswf:param name="resultObject" value="${resultBusiness}"/>
    <syswf:param name="resultProperty" value="key"/>
    <syswf:param name="sort" value="ascending"/>
    <syswf:param name="changeAction" value="business"/>
    <syswf:param name="detailTask" value="/browse/providerDetail"/>
    <syswf:param name="entityKeyName" value="businessKey"/>
</syswf:component>
                    
Taxonomy Filters  Locate
[Note]Note

Taxonomy filters have been obsoleted by categorySetters are are deprecated. See the introduction above.

Taxonomy filter components are used for selecting one category or a subset of all categories of the given taxonomy. The result of the selection is stored in the given CategoryBag.

Taxonomy Filter  Locate

The taxonomy filter is used for selecting one or many categories of the given taxonomy specified by its tModel key.

Table 97.  taxonomyFilter Parameters

ParamTypeDescriptionRequiredI|O
taxonomyTModelKeyStringCategories from this taxonomy are rendered as selection options.requiredin
categoryBagCategoryBagServes as storage for the result set of the selected categories. The categoryBag component stores and returns the current status of the selection. This parameter can be common for more taxonomies or selectors. For one taxonomy there is an exclusivity of selection, meaning that a new selection replaces of the previous selection for a particular taxonomy.requiredin|out
selectModeStringDefines selection mode as one or many. If mode one is supported, it will be possible to select just one category of the given taxonomy. If mode many is supported, it will be possible to select a subset of of the given taxonomy's categories.optionalin
viewModeString

Defines view modes radio, menu, or checkbox. If radio or checkbox modes are used, the selection will be rendered as a set of checks or radio buttons (depending on whether selectMode is one or many) where one button represents one category of the given taxonomy.

If menu mode is used, a list box is rendered with a select one or multi-select property, depending on the supported selectMode. Each line item of the list box represents one selectable category.

optionalin
categoryListString or Category[] (array) or CategoryArrayListA list of selectable categories. If the parameter has type String, it must be a list of comma-separated category values. This feature is useful if either the subset of all categories of the given taxonomy is intended to be selectable, or the taxonomy does not have all selectable categories specified. For example, an unchecked taxonomy.optionalin
fakeNilString

Adds the functionality of the empty selection choice useful for selectionMode = one. If the parameter is used and is not empty, its String value is treated as no selection and is added to the list of selectable categories. If no category is selected, this nil value is visually selected. If this nil value is selected, no category of the given taxonomy is really selected.

This feature is useful when selectMode = one is supported and a select one or nothing" feature is actually desired.

optionalin

Example 41. Taxonomy Filter - Usage Example

<%-- Import the syswf framework custom tag library. --%>
<%@ taglib prefix="syswf" uri="http://systinet.com/jsp/syswf" %>
...
<syswf:component prefix="filter" name="taxonomyFilter">
    <syswf:param name="taxonomyTModelKey" 
        value="uddi:uddi.org:categorization:types"/>
    <syswf:param name="categoryList" value="yes,no"/>
    <syswf:param name="categoryBag" value="${categoryBag}"/>
    <syswf:param name="viewMode" value="menu"/>
    <syswf:param name="selectMode" value="one"/>
    <syswf:param name="fakeNil" value="nil"/>
</syswf:component>
Taxonomy Pure Filter  Locate

The Taxonomy Pure Filter component is intended for incrementally adding to a list of selected categories of the given taxonomy. It is useful for taxonomies without defined categories.

It renders input fields representing the specification of the category which will be added to the list.

Table 98.  taxonomyFilterPure Parameters

ParamTypeDescriptionRequiredI|O
taxonomyTModelKeyStringSpecifies the taxonomy the categories of which can be set to the resulting categoryBag.requiredin
categoryBagCategoryBagA storage of the result set of the selected categories. The categoryBag component stores and returns the current state of the selection. This parameter can be common for more taxonomies or selectors. For one taxonomy there is an exclusivity of selection. This means that a new selection of categories replaces the previous selection for a particular taxonomy.requiredin|out
restrictedStringIf entered and not empty, it renders one input field for the specification of the value specifying category. Neither captions nor a key name input field are presented.optionalin
reuseStringIf the reuse parameter is not present, the category specified by input fields is simply added to the given categoryBag (if it is not there already). If the reuse parameter is present and not empty, categoryBag is used for redefinition of the category it stores for the taxonomy given as the component parameter. This means that if the categoryBag already stores a category of the given taxonomy, this category is used and input fields are prefilled using this category. If a new specification of input fields gives the specification of a new category, this category will replace the old one stored in categoryBag.optionalin

Example 42. Taxonomy Filter Pure - Usage Example

<%-- Import the syswf framework custom tag library. --%>
<%@ taglib prefix="syswf" uri="http://systinet.com/jsp/syswf" %>
...
<syswf:component prefix="filterPure" name="taxonomyFilterPure">
    <syswf:param name="taxonomyTModelKey" value="uddi:uddi.org:wsdl:types"/>
    <syswf:param name="categoryBag" value="${categoryBag}"/>
    <syswf:param name="reuse" value=""/>
</syswf:component>
Wizard  Locate
wizardIterator  Locate

This component enables a wizard scenario and handles the navigation between the wizard steps. It renders the wizard navigation buttons as Next, Previous, Cancel, and Finish. It is also able to render the complete list of step names with an active step name highlighted.

There are two actions this component sends to the root component: Cancel and Finish. The Cancel action is sent as a reaction when the user presses the Cancel button. The Finish action is sent as a reaction when the user presses the Finish button. Both actions are declared in the Java part of the wizardIterator component of com.systinet.uddi.bui.framework.component.wizard.WizardIterator as final static fields: CANCEL and FINISH.

Table 99.  wizardIterator Parameters

ParamDescriptionRequired
componentNamesThis value must hold a comma-separated list of Strings. Each String must refer to the name of a component. Each component then represents a step of the wizard. The order of the items in the list is the order of the wizard steps. required
stepNamesThe value of this parameter must hold a comma-separated list of Strings. Its length must be equal to the length of the list passed to the componentNames parameter. Each item of the list represents the title of the step that will be rendered at the top of the resulting wizard step page. The order of the items should correspond to the order of the items in the componentNames parameter. required
formThe value of this parameter must hold an instance of Object. This instance will be passed as a parameter to every component that represents a wizard step . This is the main entity the wizard iterates over. required
showStepListThe value of this parameter must hold a boolean. When set to true, a list of the step names with an active step highlighted will be displayed in the left part of the wizard's window. optional
showDisabledButtons The value of this parameter must hold a boolean. When set to true, disabled navigation buttons will also be displayed during the iteration (that is,, the Back button in the first step, the Next button in the last step, and the Finish button before the final step).

By default only enabled navigation buttons are displayed.

optional

Example 43. wizardIterator - Usage Example

<syswf:component name="wizardIterator" prefix="wizard">
    <syswf:param name="componentNames" value="${wizardComponents}"/>
    <syswf:param name="stepNames" value="${wizardNames}"/>
    <syswf:param name="form" value="${form}"/>
    <syswf:param name="showStepList" value="true"/>
    <syswf:param name="showDisabledButtons" value="true"/>
</syswf:component>
Result  Locate

In this section, we will show how Result components are used in the Business Service Control. We explain result components in Figure 15, which displays list of services

Figure 15. Result Components

Result Components

The selectResultView is responsible for rendering the Result View with a drop down list containing a list of available result views.

The tableFilter component renders fields for filter specification including the Filter button.

The columnHeader component renders a single column header in the result table.

selectResultView  Locate

This component takes a list of components and displays the first component (or a component specified by the defaultView parameter). SelectResultView also renders a drop down list, so the user can switch to another view from the list.

Table 100.  selectResultView Parameters

ParamDescriptionRequired
viewsA comma-separated list of component names.yes
titlesA comma-separated list of titles for the components from the views parameter. They will be displayed in the drop down list. yes
defaultViewThe name of a component to be rendered by default. no

This component accepts other parameters to be passed to the rendered component. In this way, for example, you can pass the sorting column name, set a prefix, or set data to be displayed.

Example 44. selectResultView - Usage Example

<syswf:component prefix="providers" name="selectResultView">
    <syswf:param name="views" value="providersCommonResults,providersBizResults" />
    <syswf:param name="titles" value="Common,Business" />
    <syswf:param name="defaultView" value="${defaultView}"/>
    <syswf:param name="prefix" value="providers" />
    <syswf:param name="sortedBy" value="${sortedBy}"/>
    <syswf:param name="resultList" 
        value="${availableProviders.businessEntityArrayList}"/>
</syswf:component>
tableFilter  Locate

This component renders a filter for the table identified by the parameter table.

Table 101.  tableFilter Parameters

ParamDescriptionRequired
tableValue must hold an instance of the com.systinet.uddi.bui.framework.view.Table object. yes
sortTablePrefixThe prefix of the component that actually performs the filtering. See the processTable component.yes

Example 45. TableFilter - Usage Example

<syswf:component prefix="filter" name="tableFilter">
    <syswf:param name="table" value="${table}"/>
    <syswf:param name="sortTablePrefix" value="sortTable" />
</syswf:component>
processTable  Locate

This component filters and sorts the rows of the table passed as a parameter. The component is not visual, it only handles actions and manipulates with data structures.

Table 102.  processTable Parameters

ParamDescriptionRequired
tableValue must hold an instance of the com.systinet.uddi.bui.framework.view.Table object. yes
defaultSortColumnThe name of the column to be used for sorting the table provided the user has not chosen a sorting column. no

Example 46. processTable - Usage Example

<syswf:component prefix="sortTable" name="processTable">
    <syswf:param name="table" value="${table}"/>
    <syswf:param name="defaultSortColumn" value="${defaultSortColumn}"/>
</syswf:component>
columnHeader  Locate

This component renders the column title for a single column. If a column is sortable, then its title is made clickable, so it can be used to sort the table by this column.

Table 103.  columnHeader Parameters

ParamDescriptionRequired
tableValue must hold an instance of the com.systinet.uddi.bui.framework.view.Table object. yes
columnValue must hold an instance of the com.systinet.uddi.bui.framework.view.Column object. yes
sortTablePrefixThe value of this parameter must be equal to the prefix used in the processTable component, otherwise sorting will not work. yes

Example 47. columnHeader - Usage Example

<syswf:component prefix="providerName" name="columnHeader">
    <syswf:param name="table" value="${table}"/>
    <syswf:param name="column" value="${table.columns[0]}"/>
    <syswf:param name="sortTablePrefix" value="sortTable" />
</syswf:component>
Taxonomy  Locate
taxonomyTree  Locate

This component fetches all referenced categories from a selected internal taxonomy, and constructs a JavaScript tree, and adds it to the selected parent as a child node. Categories are considered to be referenced when they are used in some published keyedReference.

Table 104.  taxonomyTree Parameters

ParamDescriptionRequired
tModelKeyKey of internal taxonomy's tModel. If the taxonomy is not internal, it has no categories and thus no nodes in the tree under the parent will be added. yes
keyValueOptional parameter that in conjunction with tModelKey constructs one concrete category. Only referenced child categories of this category will be fetched from the registry. no
parentName of a JavaScript variable that will serve as parent for the created tree. yes

Example 48. taxonomyTree - Usage Example

<syswf:component prefix="iso3166" name="taxonomyTree">
    <syswf:param name="tModelKey" value="uddi:uddi.org:ubr:categorization:iso3166"/>
    <syswf:param name="targetTask" value="/browse/views/other/enterprise/taxonomy"/>
    <syswf:param name="parent" value="iso3166"/>
</syswf:component>
collectCategories  Locate

This component allows you to add and remove categories from the list. It consists of the two column areas. The left column contains the taxonomy tree structure; the right contains the list of currently selected values.

Table 105.  collectCategories Parameters

ParamDescriptionRequired
taxonomyTModelKeyMust contain the valid tModel key of the checked internal taxonomy. The values of this taxonomy will be displayed in the tree on the left side.required
categoryBagThe value of this parameter must contain an instance of the org.systinet.uddi.client.v3.struct.CategoryBag class. This class is used as a holder for the selected categories, which are displayed in the right-hand column.required

Example 49. collectCategories - Usage Example

<syswf:component name="collectCategories" prefix="unspsc">
    <syswf:param name="categoryBag" value="${form.business.entity.categoryBag}"/>
    <syswf:param name="taxonomyTModelKey" 
        value="uddi:uddi.org:ubr:categorization:unspsc"/>
</syswf:component>
selectableTaxonomyTree  Locate

This component displays the taxonomy values in the tree-like structure. Each tree node also contains a check box, which can be used to select a specified value. The tree is constructed on a per-node basis, so it can handle potentially large taxonomy structures.

Table 106.  selectableTaxonomyTree Parameters

ParamDescriptionRequired
taxonomyTModelKeyMust contain the valid tModel key of the checked internal taxonomy. The values of this taxonomy will be displayed in the tree.required
[Tip]Tip

Usage of the selectableTaxonomyTree component: Note that taxonomy data are usually very large, so it is a good idea to restrict the area occupied by this component using the HTML DIV tag with a specified size. The example bellow displays the tree in a scrollable square area of 300 by 300 pixels.

Example 50. Component Parameters

<div style="width:300px; height:300px; overflow:scroll; clip:rect(0px 0px 0px 0px);">
    <syswf:component prefix="taxonomy" name="selectableTaxonomyTree">
       <syswf:param name="taxonomyTModelKey" value="${taxonomyTModelKey}"/>
    </syswf:component>
</div>

Util  Locate
tabbedFrame (deprecated)  Locate

This component renders content divided into several tabs. These tabs are displayed down the right side of screen. The tabbedFrame component is substituted for TabsComponent class.

Table 107.  tabbedFrame Parameters

ParamDescriptionRequired
tabNN_componentThe value of this parameter must refer to the name of the component. The component then represents the content of a tab. The string NN in the parameter name stands for some number used for ordering the tabs. For example, tab1_component will be rendered before tab2_component.at least one
tabNN_idThe value of this parameter must hold the tab's unique identifier. Its value is also used to determine which icons should be rendered as tab handles. For example, a tab with the id webpaging will require the images webroot\gfx\tabs\webpaging_0.gif and webroot\gfx\tabs\webpaging_1.gif to be present in bsc.jar. The first image represents unselected tab and the second image contains selected version. The prefix of the parameter name must match the corresponding tabNN_component parameter. at least one
defaultTabThe value of this parameter must hold the id of the tab which will be active by default. This value is used only when user displays a page with a tabbed component for the first time. The next time identification of the active tab is obtained from a browser cookie rather than from this parameter.no

Example 51. tabbedFrame configuration - Component Parameters

<config name="web" savingPeriod="5000">
    <webFramework>
    ...
        <component name="configuration_tabs" className="com.systinet.uddi.bui.framework.component.util.TabbedFrame" page="util/tabbedFrame.jsp">
            <parameter paramName="tab1_id" paramValue="webtabs"/>
            <parameter paramName="tab1_component" paramValue="configuration_webtabs"/>
            <parameter paramName="tab2_id" paramValue="webviews"/>
            <parameter paramName="tab2_component" paramValue="configuration_webviews"/>
            <parameter paramName="tab3_id" paramValue="webtaxonomy"/>
            <parameter paramName="tab3_component" paramValue="configuration_webtaxonomy"/>
            <parameter paramName="tab4_id" paramValue="webpaging"/>
            <parameter paramName="tab4_component" paramValue="configuration_webpaging"/>
            <parameter paramName="tab5_id" paramValue="webui"/>
            <parameter paramName="tab5_component" paramValue="configuration_webui"/>
        </component>
        <component name="configuration_webtabs" page="configuration/webtabs.jsp"/>
        <component name="configuration_webviews" page="configuration/webviews.jsp"/>
        <component name="configuration_webtaxonomy" page="configuration/webtaxonomy.jsp"/>
        <component name="configuration_webpaging" page="configuration/webpaging.jsp"/>
        <component name="configuration_webui" page="configuration/webui.jsp"/>
        ...
    </webFramework>
...
</config>
TabsComponent  Locate

TabsComponent is a semi-complete component that is used to display a list of tabs defined in the configuration file web_component.xml. It consists of:

  • class com.systinet.uddi.bui.framework.component.util.TabsComponent that reads the configuration;

  • JSP file util/tabsComponent.jsp that renders the tabs.

The developer creates a new component with these and the parameter tabs.

The tabs parameter contains its configuration in the form of XML stored within a paramValue element. It must contain root element tabs, which contains tab elements.

Table 108.  tab attributes

AttributeDescriptionRequired
tabIdThe value of this attribute defines a unique identifier for this tab within this set of tabs. It can be used in tabs_disable_list component parameter. yes
tabComponentThis value must be a reference to an existing component that represents the content of the tab. yes
captionKey The value of this attribute is a reference to a resource bundle with text that will be rendered as the caption of the tab. yes
hintKey The value of this attribute is a reference to a resource bundle with text that will be rendered as a hint for this tab. It will be displayed when the user points to the tab caption. no

The component accepts a parameter tabs_disable_list with a comma separated list of tab identifiers that will be skipped during tab rendering. Leading and trailing commas are ignored. This way developers may dynamically disable some tabs that are not available in the current context.

Example 52. TabsComponent configuration

<component
        name="recentChanges_tabs"
        className="com.systinet.uddi.bui.framework.component.util.TabsComponent"
        page="util/tabsComponent.jsp">
    <parameter paramName="tabs">
        <paramValue>
            <tabs>
                <tab tabId="providers" tabComponent="changes_providers"
                    captionKey="webcomponent.recentChanges_tabs_caption_providers"
                    hintKey="webcomponent.recentChanges_tabs_hint_providers"/>
                <tab tabId="services" tabComponent="changes_services"
                    captionKey="webcomponent.recentChanges_tabs_caption_services"
                    hintKey="webcomponent.recentChanges_tabs_hint_services"/>
                <tab tabId="endpoints" tabComponent="changes_endpoints"
                    captionKey="webcomponent.recentChanges_tabs_caption_endpoints"
                    hintKey="webcomponent.recentChanges_tabs_hint_endpoints"/>
                <tab tabId="interfaces" tabComponent="changes_interfaces"
                    captionKey="webcomponent.recentChanges_tabs_caption_interfaces"
                    hintKey="webcomponent.recentChanges_tabs_hint_interfaces"/>
            </tabs>
        </paramValue>
    </parameter>
</component>
                    

Example 53. TabsComponent usage

<syswf:component name="recentChanges_tabs" prefix="tabs">
    <syswf:param name="tabs_disable_list" value="endpoints,interfaces"/>
</syswf:component>
                    
TreeComponent  Locate

TreeComponent is used to display a static tree. Elements of the tree are links to actions and tasks. Sub-trees can be expanded and collapsed. An icon can be shown next to each link.

TreeComponent is a semi-complete component. It consists of

  • class com.systinet.uddi.bui.framework.component.util.TreeComponent that reads the configuration from web_component.xml;

  • JSP util/treeComponent.jsp that renders the tree;

All elements of the tree are described in the component configuration, so different trees require different components. The component configuration includes:

  • configuration common to different trees:

    • Java class file;

    • JSP file;

  • configuration specific to the particular tree:

    • a parameter containing the tree layout;

Example 54. A tree configuration

<component name="publishTree"
        className="com.systinet.uddi.bui.framework.component.util.TreeComponent"
        page="util/treeComponent.jsp">
    <parameter paramName="treeContent">
        <paramValue>
            <node nodeId="publish" captionKey="publish" icon="publish.gif">
                <control action="" targetTask="/publish" targetUrl=""/>
                <node nodeId="providers" captionKey="publish_providers" icon="provider.gif">
                    <control targetTask="/catalog/providerMenu"/>
                    <contextMenuReference component="contextMenu_providersList"/>
                </node>
                <node nodeId="services" captionKey="publish_services" icon="service.gif">
                    <control targetTask="/catalog/serviceMenu"/>
                    <contextMenuReference component="contextMenu_servicesList"/>
                </node>
                <node nodeId="resources" captionKey="publish_resources" icon="resources_0.gif" openIcon="resources_1.gif">
                    <control targetTask="/publish/resources"/>
                    <node nodeId="wsdl" captionKey="publish_resources_wsdl" icon="wsdl_0.gif">
                        <control targetTask="/catalog/wsdlMenu"/>
                        <contextMenuReference component="contextMenu_wsdlList"/>
                        <node nodeId="portTypes" captionKey="publish_resources_wsdl_portTypes" icon="porttype.gif">
                            <control targetTask="/catalog/wsdl/portTypeMenu"/>
                            <contextMenuReference component="contextMenu_portTypeList"/>
                        </node>
                        <node nodeId="ports" captionKey="publish_resources_wsdl_ports" icon="port.gif">
                            <control targetTask="/catalog/wsdl/portMenu"/>
                            <contextMenuReference component="contextMenu_portList"/>
                        </node>
                    </node>
                    <node nodeId="xsd" captionKey="publish_resources_xsd" icon="xsd.gif">
                        <control targetTask="/catalog/xsdMenu"/>
                        <contextMenuReference component="contextMenu_xsdList"/>
                    </node>
                </node>
            </node>
        </paramValue>
    </parameter>
 </component>

Table 109.  node attributes

AttributeDescriptionRequired
nodeIdAn identifier for the node, must be unique in the tree.yes
captionKeyResource-bundle key for caption of the link.yes
iconA relative path to the icon for the node. Default is file.png.no
openIconLike icon attribute but for open nodes. Default is same as icon.no

Table 110.  node sub-elements

ElementDescriptionMore than onceRequired
nodeNode element of subtree.yesno
controlSpecifies syswf:control like links.noyes
elementMenuReferenceLink to ContextMenuComponent.nono

Table 111.  control attributes

AttributeDescriptionRequired
actionAn action to syswf:controlno
targetTaskA targetTask to syswf:controlno
targetDepthA targetDepth to syswf:control, with default 0.no
targetUrlA targetUrl to syswf:controlno

A control element can contain parameters described in a parameter element. These parameters will be available in the called task/component.

Table 112.  parameter attributes

AttributeDescriptionRequired
paramNameAn identifieryes
paramValueAny string.yes

A contextMenuReference element links the tree node to a ContextMenuComponent, which is activated by right-clicking the node. It contains a component attribute, which is used to:

  • create an identifier for linking the node and the actual menu;

  • call a component of that name to render a contextMenu component. The rendered component is hidden until the menu is activated;

Up to 9 parameters can be specified in the contextMenuReference via parameter elements. They will be merged with the parameters specified in the configuration of the called contextMenu component and used within the syswf:control element.

A TreeComponent may be called without parameters.

ContextMenuComponent  Locate

ContextMenuComponent is used to display a context menu. Elements of the menu are links to actions and tasks. An icon can be shown next to each link.

ContextMenuComponent is a semi-complete component. It consists of

  • class com.systinet.uddi.bui.framework.component.util.ContextMenuComponent that reads the configuration from component parameters in web_component.xml;

  • util/contextMenuComponent.jsp that renders the menu.

All elements of the menu are described in the component the configuration, so different context menus require different components. The component configuration includes:

  • configuration common to different context menus:

    • Java class file;

    • JSP file;

  • configuration specific to the particular context menu:

    • a parameter containing menu items;

Example 55. A context menu configuration

<component name="contextMenu_providersList" className="com.systinet.uddi.bui.framework.component.util.ContextMenuComponent" page="util/contextMenuComponent.jsp">
    <parameter paramName="menu">
        <paramValue>
            <contextMenu captionKey="providersList_caption">
                <menuItem captionKey="providersList_item_publish_providers" icon="ctx_bsn_add.gif">
                    <control targetTask="/publish/providers">
                        <parameter paramName="editableMode" paramValue="true"/>
                    </control>
                </menuItem>
                <menuItem captionKey="providersList_item_search_providers" icon="ctx_bsn_add.gif">
                    <control targetTask="/search/providers">
                        <parameter paramName="editableMode" paramValue="true"/>
                    </control>
                </menuItem>
                <menuItem captionKey="providersList_item_publish_myProviders" icon="ctx_bsn_add.gif">
                    <control targetTask="/publish/myProviders">
                        <parameter paramName="editableMode" paramValue="true"/>
                    </control>
                </menuItem>
                <menuItem captionKey="providersList_item_publish_providers_createProvider" icon="ctx_bsn_add.gif">
                    <control targetTask="/publish/providers/createProvider"/>
                </menuItem>
            </contextMenu>
        </paramValue>
    </parameter>
</component>

A contextMenu element contains attribute captionKey specifying the resource bundle key for the caption of the menu. Its content is a list of menuItem elements that describe each menu item. Menu items have inks to actions and tasks.a captionKey attribute and an icon attribute specifying the relative path to icon file. Menu items also contain a control element, which is exactly same as the one described in TreeComponent.

The component can be called without any parameters, but is not usually called directly in code, but from components such as TreeComponent that reference a context menu from their configuration.

Framework Tags  Locate

This section describes the Business Service Control web framework tag library.

bsc:setLocalizedNames  Locate

This tag is used to set localized Names from a given list of names. The output JSP variable will contain names that match given criteria. The algorithm selects all Names with a langCode equal to the attribute langCode, if it is defined. Otherwise, Names with default (empty) langCodes are chosen. If there is no such Name at all, then the first Name is selected from the list.

Table 113.  setLocalizedNames Parameters

ParamDescriptionRequired
varOutput variable holding a list of names in the required language.yes
valueThis parameter must hold an instance of the org.systinet.uddi.client.v3.struct.NameArrayList object. This object will be searched for localized Names. yes
scopeIdentifies the scope in which the variable will be set. It accepts the following values: request, session, and application. If it is not defined or has a different value, then the page scope is used. no
langCodeCode of the preferred language. Names with this langCode will be selected from the value parameter. no

Example 56. setLocalizedNames - Usage Example

<bsc:setLocalizedNames var="DEFAULT_NAMES" value="${row.nameArrayList}" />
<c:out value="${DEFAULT_NAMES[0].value}"/>
bsc:setLocalizedDescriptions  Locate

This tag is used to set localized Descriptions from a given list. It creates a new JSP variable holding a DescriptionArrayList of Descriptions that match the given criteria. The algorithm selects all Descriptions with langCode equal to the attribute langCode, if it is defined. Otherwise, Descriptions with default (empty) langCodes are chosen. If there is no such Description at all, then the first Description is selected from the list.

Table 114.  setLocalizedDescriptions Parameters

ParamDescriptionRequired
varThe name of the output variable holding the list of descriptions in the required languageyes
valueMust hold an instance of the org.systinet.uddi.client.v3.struct.DescriptionArrayList object. This object is searched for localized Descriptions. yes
scopeThis parameter identifies the scope in which the variable are to be set. It accepts the following values: request, session, and application. If it is not defined or has a different value, then the page scope is used. no
langCodeCode of the required language. Names with this langCode will be selected from the value parameter. no

Example 57. setLocalizedDescriptions - Usage Example

<bsc:setLocalizedDescriptions var="descriptions" value="${row.descriptionArrayList}" 
    langCode="${userDefaultLanguage}"/>
<c:out value="${descriptions[0].value}"/>
bsc:setSelectedContacts  Locate

This tag is used to set Contacts of a certain useType from the given list. It creates a new JSP variable holding ContactArrayList of Contacts that matches given criteria.

The optional findQualifer parameter determines whether an exact match of the useType is required or if a useType containing a regular expression is to be used. Regular expressions used must conform to UDDI syntax, that is, it accepts ? and % as wildcards.

Table 115.  setSelectedContacts Parameters

ParamDescriptionRequired
varThe name of the output variable.yes
valueMust hold an instance of the org.systinet.uddi.client.v3.struct.ContactArrayList object; this object will be searched for the selected Contacts. yes
scopeThis parameter identifies the scope, where the variable shall be set. It accepts the following values: request, session and application. If it is not defined or has a different value, then the page scope is used. no
useTypeThis parameter holds the value of useType that will be searched in the list of Contacts. If the approximateMatch findQualifier is used, then ? and % characters have the special meaning of wild card characters, as described in the UDDI specification. yes
findQualifierThe findQualifier parameter determines, whether the useType shall be used for exact match (exactMatch) or whether it contains wild card characters (approximateMatch). If it is not specified, exactMatch is used. no

Example 58. setSelectedContacts - Usage Example

<bsc:setSelectedContacts var="contact" value="${row.contactArrayList}" 
    useType="%" findQualifier="approximateMatch" />
<c:out value="${contact[0].personNameArrayList[0].value}"/>
bsc:setCategories  Locate

This tag is used to set KeyedReferences from a given list. It creates a new JSP variable holding a KeyedReferenceArrayList of KeyedReferences that match given criteria. The tModelKey parameter specifies a tModelKey in which each KeyedReference must be selected. The optional keyValue parameter acts as a secondary filter for KeyedReferences.

Table 116.  setCategories Parameters

ParamDescriptionRequired
varThe name of the output variableyes
valueMust hold an instance of the org.systinet.uddi.client.v3.struct.KeyedReferenceArrayList object. This object will be searched for matching KeyedReferences. If the value is not defined, the variable will be unset. yes
scopeThis parameter identifies the scope in which the variable shall be set. It accepts the following values: request, session, and application. If it is not defined or has a different value, then the page scope is used. no
tModelKeyHolds the value of the tModelKey in which each selected KeyedReference must be contained. yes
keyValueThis optional parameter serves as an additional filter. If it is specified then each KeyedReference must contain it.no
keyNameIf specified, only keyedReferencies whose keyName equals to the attribute value are copied to the result variable.no

Example 59. setCategories - Usage Example

<bsc:setCategories var="unspc" value="${row.categoryBag.keyedReferenceArrayList}" 
    tModelKey="uddi:uddi.org:ubr:categorization:unspsc" />
<c:out value="${unspc[0].keyName}"/>
bsc:parseUddiQuery  Locate

This tag is used to set a UDDI query to a specified variable. It can parse XML containing one of the following operations:

find_binding
find_business
find_service
find_tModel
get_binding
get_business
get_service
get_tModel

If the value parameter is not set, then the tag body is evaluated and used as the value.

Table 117.  parseUddiQuery Parameters

ParamDescriptionRequired
varThe name of the introduced variable.yes
value

Must hold a valid XML representation of the following UDDI operations: find_binding, find_business, find_service, find_tModel, get_binding, get_business, get_service and get_tModel.

Note that namespaces must not be omitted!

no

Example 60. parseUddiQuery - Usage Example

<bsc:parseUddiQuery var="findQuery" scope="request">
    <find_tModel xmlns="urn:uddi-org:api_v3">
        <categoryBag>
            <keyedReference tModelKey="uddi:uddi.org:wsdl:types"
                keyValue="portType" />
        </categoryBag>
    </find_tModel>
</bsc:parseUddiQuery>
bsc:table  Locate

The table tag is a key component in the Business Service Control. It is used to define the Table object, which holds data for query results, columns, and unfolded rows. Many components depends on this object, such as tableFilter and columnHeader.

The behavior of this tag depends on whether the Table object can be found in the selected scope. If the Table is missing, a new object is created and the tag body is evaluated. If the object is present in this scope, then the body is skipped. The table also refreshes, if the request contains the tableRefresh attribute. This prevents unnecessary data conversions when just redisplaying the same page

For example: when a different view is selected in the selectResultView component, then the tableRefresh attribute is pushed to the request and Table is recreated.

Table 118.  table Parameters

ParamDescriptionRequired
varThe name of the variable holding the Table object.yes
scopeIdentifies the scope in which the variable shall be set. It accepts the following values: request, session, and application. If it is not defined or has a different value, then the page scope is used. no

Example 61. Table tag - Usage Example

<bsc:table var="${tableName}" scope="session">
    <bsc:column caption="Provider name" filterCaption="Provider name" 
    name="providerName" sortable="true" filterable="true"/>
    <bsc:column caption="Keyword Name" filterCaption="Keyword Name" 
    name="keywordName" sortable="true" filterable="true"/>
    <bsc:column caption="Keyword Value" filterCaption="Keyword Value" 
    name="keywordValue" sortable="true" filterable="true"/>
    <bsc:column caption="Services" name="serviceCount" sortable="true" 
        filterable="false"/>
    <c:forEach items="${resultList}" var="row" varStatus="status">
        <bsc:row>
            <bsc:attribute key="businessKey" value="${row.businessKey}" />
            <bsc:attribute key="services" value="${row.businessServiceArrayList}" />
            <bsc:setCategories var="keywords" 
                value="${row.categoryBag.keyedReferenceArrayList}"
                tModelKey="uddi:uddi.org:categorization:general_keywords" />
            <bsc:cell trimWhitespace="yes">
                <bsc:setLocalizedNames var="DEFAULT_NAMES" 
                    value="${row.nameArrayList}" />
                <c:out value="${DEFAULT_NAMES[0].value}"/>
            </bsc:cell>
            <bsc:cell trimWhitespace="yes">
                <c:out value="${keywords[0].keyName}"/>
            </bsc:cell>
            <bsc:cell trimWhitespace="yes">
                <c:out value="${keywords[0].keyValue}"/>
            </bsc:cell>
            <bsc:cell trimWhitespace="yes">
                <syswf:size var="SERVICE_COUNT" 
                    value="${row.businessServiceArrayList}"/>
                <c:out value="${SERVICE_COUNT}"/>
            </bsc:cell>
        </bsc:row>
    </c:forEach>
</bsc:table>
bsc:tableActions  Locate

The bsc:tableActions tag initializes its output variable with a structure that describes actions that are rendered on the page by the browser. The tag does not produce any HTML output, just the data. It is provided for convenient and simple initialization of other UI components.

The list of actions is populated by bsc:action tags, nested in the bsc:tableActions tag. The standard UI uses attributes of bsc:action to populate and initialize HTML page controls. The standard UI behavior will be explained in attribute descriptions.

To support extensibility, bsc:action can specify an insertInto attribute, that directs the action into a specified action list. This feature can be utilized by extensions that build on a basic UI.

Table 119. bsc:tableActions attributes

Attribute Description Required
var The name of the output variable that will receive the list of actions constructed by the tag. yes
scope The scope of the variable. See the JSP specification for a list of scope names. no

Table 120. bsc:action attributes

Attribute Description Required
task URI of the task associated with the action. yes
action The action string associated with the UI action. This string can be sent to the associated task. no
default A boolean value of true or false. yes
insertInto The value must be of the type com.systinet.uddi.bui.framework.view.TableActions. The action produced by the tag will be appended to that list of actions.  
bsc:column  Locate

The column tag appends a new Column to the list of Columns in Table. This tag must be nested within the Table tag.

Table 121.  column Parameters

ParamDescriptionRequired
captionThe caption for this column. Used by the columnHeader component.yes
filterCaptionThe caption for this column in the tableFilter component. If empty, no caption is used. no
nameThe identifier of this column for sorting and filtering. If the column is used for filtering or sorting rows, then this parameter is mandatory. only if used for filtering or sorting
sortableThe boolean property which determines, whether this column can be used for sorting rows of the Table. A case-insensitive match to yes and no is performed. no
filterableThe boolean property which determines, whether this column can be used for filtering rows of the Table. The values are yes or no.no
bsc:row  Locate

This tag appends a new Row to the list of Rows in Table. It must be nested within the Table tag. This tag supports storing of attributes via a directly nested attribute tag. The key parameter is the unique identifier of the row. The identifier must implement java.io.Serializable. If no key value is given, a key value is generated when the row is inserted into a table. The row can contain <bsc:attribute> tags which populate the row attributes property.

bsc:cell  Locate

The cell tag appends a new Cell to the current Row in the Table. This tag must be nested within the Row tag. If the caption parameter is not specified, then the tag body is evaluated and body content is used. The trimWhiteSpace attribute determines whether white spaces at both ends of the body content string shall be removed. This tag supports the storing of attributes via directly nested attribute tags.

Table 122.  cell Parameters

ParamDescriptionRequired
captionThe caption for this cell.no
trimWhiteSpaceThe boolean property which determines, whether white space characters from body content shall be removed. Used only if caption is not defined. A case-insensitive match to yes and no is performed. no
bsc:attribute  Locate

The attribute tag is used to decorate the parent tag with additional data. The parent tag hierarchy is searched for the first tag that implements the Attributive interface. This parent will receive this tag value via the method void addAttribute(string key, String value) .

If the value parameter is not set, then the tag body is evaluated and used as the value.

Table 123.  attribute Parameters

ParamDescriptionRequired
keyName of the attributeyes
valueThe string value for the specified key. no
Business Service Control Components  Locate

This section describes selected components of the Business Service Control.

  • providerSearchResults - executes a find_business UDDI query and displays providers that match the query.

  • executeFindProviders - Executes a find_business UDDI query and produces a list of providers that match the query.

  • serviceSearchResults - Executes a find_service UDDI query and displays services that match the query.

  • executeFindServices - Executes a find_service UDDI query and displays services that match the query.

  • endpointSearchResults - Executes a find_binding UDDI query and displays Endpoints that match the query.

  • executeFindEndpoints - Executes a find_binding UDDI query that processes the results that match the query.

  • interfaceSearchResults - Executes a find_tModel UDDI query and displays Interfaces that match the query.

  • executeFindInterfaces - Executes a find_tModel UDDI query and displays Interfaces that match the query.

  • bindingSearchResults - Executes a find_tModel UDDI query and displays Bindings that match the query.

  • executeFindBinding - Executes a find_tModel UDDI query in order to find Bindings.

  • getOperations - Fetches a list of operations for a Binding or a PortType from a WSDL.

  • getDocumentation - Extracts the useType documentation from an org.systinet.uddi.client.v3.struct.OverviewDocArrayList.

  • getServiceEndpoints - Analyzes the Binding Templates of a Business Service, and creates a list of valid WSDL Endpoints mapped to those Binding Templates.

  • selectCategory - Takes an existing query and adds a KeyedReference into the query's CategoryBag.

providerSearchResults  Locate

This component executes a find_business UDDI query and displays providers that match the query. Alternatively, the component may be given a list of Businesses to display. This alternative approach is recommended when the result cannot be produced by an UDDI query directly, such as when there is some post-processing involved.

The results are displayed in a standard layout that allows selection of a view from a list of supported views.

Table 124.  providerSearchResults Parameters

ParamDescriptionRequired
providerListMust hold an instance of one of the following:
import org.systinet.uddi.client.v3.struct.BusinessList
org.systinet.uddi.client.v3.struct.BusinessDetail
org.systinet.uddi.client.v3.struct.BusinessEntityArrayList
The query will not be executed, rather Providers (Businesses) which are given in the list will be displayed.
yes, exclusive with query
defaultViewThe component name of the view component that should be displayed by default. Valid names are:
  • providerCommonResults - common results view

  • providerBusinessResults - business results view

If the parameter is not present, the providersCommonResults view will be displayed.
no
sortedByThe name of the column for the initial sort order. The list of applicable values depends on the selected default view Component. no
queryMust hold an instance of the org.systinet.uddi.client.v3.struct.Find_business object. The query will be executed in UDDI using the logged user's credentials. yes, exclusive with providerList
varA variable that will also receive the results. An anticipated use of this parameter is to enable the caller to detect if there are no results. no

Example 62.  providerSearchResults - Usage Example

This example shows how to display all Providers (UDDI business entities) whose name starts with "A".

<bsc:parseUddiQuery var="providersQuery" scope="session">
    <find_business xmlns="urn:uddi-org:api_v3">
        <findQualifiers>
            <findQualifier>
                uddi:uddi.org:findqualifier:approximatematch
            </findQualifier>
        </findQualifiers>
        <name>A%</name>
    </find_business>
</bsc:parseUddiQuery>

<syswf:component prefix="providers" name="findProviders">
    <syswf:param name="query" value="${providersQuery}"/>
</syswf:component>
executeFindProviders  Locate

This Component executes a find_business UDDI query and produces a list of providers that match the query. The results will be placed into a specified result variable in the local session.

The specified result variable is a cache for the result value. If the variable is not empty, the query is not executed. You must clear the variable in order to get a fresh result set. The cache is automatically cleared when a task is selected.

Table 125.  executeFindProviders Parameters

ParamDescriptionRequired
queryMust hold an instance of the org.systinet.uddi.client.v3.struct.Find_business object. The query will be executed in UDDI using the logged user's credentials. yes
varThis value will be used as the name of the result variable in the local session where the component will store the result of the query. The stored result will be of type org.systinet.uddi.client.v3.struct.BusinessDetail. yes

Example 63. executeFindProviders - Usage Example

This example shows how to display the names of all Providers (UDDI business entities) whose name starts with "A".

<bsc:parseUddiQuery var="providersQuery" scope="session">
    <find_business xmlns="urn:uddi-org:api_v3">
        <findQualifiers>
            <findQualifier>
                uddi:uddi.org:findqualifier:approximatematch
            </findQualifier>
        </findQualifiers>
        <name>A%</name>
    </find_business>
</bsc:parseUddiQuery>

<syswf:component prefix="providers" name="executeFindProviders">
    <syswf:param name="query" value="${providersQuery}"/>
    <syswf:param name="var" value="searchResults"/>
</syswf:component>

Providers whose names start with "A":
<c:forEach items="${searchResults}" var="provider">
    <c:out value="${provider.names[0].value}"/><br/>
</c:forEach>
serviceSearchResults  Locate

This component executes a find_service UDDI query and displays services that match the query. Alternatively, the component may be given a list of Services to display. This alternative approach is recommended when the result can not be produced by a UDDI query directly, for example, if there is some post-processing required.

The results are displayed in a standard layout that allows the user to select a view from among the supported ones (common, business, etc.).

Table 126.  serviceSearchResults Parameters

ParamDescriptionRequired
serviceListMust hold an instance of one of the following:
import org.systinet.uddi.client.v3.struct.ServiceList
org.systinet.uddi.client.v3.struct.ServiceDetail
org.systinet.uddi.client.v3.struct.BusinessServiceArrayList
The query will not be executed, rather Services which are given in the list will be displayed.
yes, exclusive with query
defaultViewThe component name of the view component that should be displayed by default. Valid names are:
  • serviceCommonResults - common results view

  • serviceBusinessResults - business results view

  • serviceTechnicalResults - technical results view

If the parameter is not present, the serviceCommonResults view will be displayed.
no
sortedByThe name of the column for the initial sort order. The list of applicable values depends on the selected default view Component. no
queryMust hold an instance of the org.systinet.uddi.client.v3.struct.Find_service object. The query will be executed in UDDI using the logged user's credentials. yes, exclusive with serviceList

Example 64. serviceSearchResults - Usage Example

This example displays all services that are categorized within the Certification taxonomy.

<bsc:parseUddiQuery var="serviceQuery" scope="session">
    <find_service xmlns="urn:uddi-org:api_v3">
        <findQualifiers>
            <findQualifier>
                uddi:uddi.org:findqualifier:approximatematch
            </findQualifier>
        </findQualifiers>
        <categoryBag>
            <keyedReference
                tModelKey="uddi:systinet.com:taxonomy:service:certification"
                keyValue="%"
            />
        </categoryBag>
    </find_service>
</bsc:parseUddiQuery>

<syswf:component prefix="services" name="findServices">
    <syswf:param name="query" value="${serviceQuery}"/>
</syswf:component>
executeFindServices  Locate

This component executes a find_service UDDI query and displays services that match the query. The results of the query will be post-processed using org.systinet.uddi.client.v3.struct.ServiceDetail so that information about the owning Business Entity is easily available. The component will create wrapper structures (of type com.systinet.uddi.bui.standard.util.Service) to link the Service to its parent Business Entity instance. The wrappers will be placed into a specified result variable in the local session.

The specified result variable is a cache for the result value. If the variable is not empty, the query is not executed. You must clear the variable in order to get a fresh result set. The cache is automatically cleared when a task is selected.

Table 127.  executeFindServices Parameters

ParamDescriptionRequired
queryValue must hold an instance of the org.systinet.uddi.client.v3.struct.Find_service object. The query will be executed in UDDI using the logged user's credentials. yes
varUsed to name the result variable in the local session, where the component will store the result of the query. The stored result will be of type com.systinet.uddi.bui.standard.util.Service[]. yes
endpointSearchResults  Locate

This component executes a find_binding UDDI query and displays Endpoints that match the query. Alternatively, the component may be given a list of Endpoints to display. This alternative approach is recommended when the result can not be produced by an UDDI query directly, for example, if there is some post-processing required.

The component will load more information from the UDDI Registry, for the interfaces and bindings available on the matching Endpoints. These queries will be executed in UDDI using the logged user's credentials.

The results are displayed in a standard layout that allows the user to select a view from among the supported ones (common, business, etc.).

Table 128.  endpointSearchResults Parameters

ParamDescriptionRequired
endpointListMust hold an instance of either of the following:
org.systinet.uddi.client.v3.struct.BindingDetail
org.systinet.uddi.client.v3.struct.BindingTemplateArrayList
The query will not be executed, rather Endpoints which are given in the list will be displayed.
yes, exclusive with query
defaultViewThe component name of the view component that should be displayed by default. The valid names are:
  • endpointsCommonResults - common results view

  • endpointsOperationResults - operations results view

  • endpointsTechnicalResults - technical results view

If the parameter is not present, the serviceCommonResults view will be displayed.
no
sortedByThe name of the column used for the initial sort order. The list of applicable values depends on the selected default view component. no
queryMust hold an instance of the org.systinet.uddi.client.v3.struct.Find_binding object. The query will be executed in UDDI using the logged user's credentials. yes, exclusive with endpointList

Example 65. endpointSearchResults - Usage Example

This example displays all endpoints that are categorized within the Certification taxonomy.

<bsc:parseUddiQuery var="endpointQuery" scope="request">
    <find_binding xmlns="urn:uddi-org:api_v3">
        <findQualifiers>
            <findQualifier>
                uddi:uddi.org:findqualifier:approximatematch
            </findQualifier>
        </findQualifiers>
        <categoryBag>
            <keyedReference tModelKey="uddi:65719168-72c6-3f29-8c20-62defb0961c0" 
             keyValue="%"/>
            <keyedReference tModelKey="uddi:uddi.org:wsdl:types" 
                keyValue="portType"/>
        </categoryBag>
    </find_binding>
</bsc:parseUddiQuery>

<syswf:component prefix="endpoints" name="endpointSearchResults">
    <syswf:param name="query" value="${endpointQuery}"/>
</syswf:component>
executeFindEndpoints  Locate

This Component executes a find_binding UDDI query that processes the results that match the query. The Component will load more information from the UDDI Registry, for the interfaces and bindings available on the matching Endpoints. These queries will be executed using the logged user's credentials. The processed information will be available as an array of wrapper structures of type com.systinet.uddi.bui.standard.util.Endpoint.

The specified result variable is a cache for the result value. If the variable is not empty, the query is not executed. You must clear the variable in order to get a fresh result set. The cache is automatically cleared when a task is selected.

Table 129.  executeFindEndpoints Parameters

ParamDescriptionRequired
queryMust hold an instance of the org.systinet.uddi.client.v3.struct.Find_binding object. The query will be executed in UDDI using the logged user's credentials. yes
varUsed to name the result variable in the local session in which the component will store the result of the query. The stored result will be of type com.systinet.uddi.bui.standard.util.Endpoint[]. yes

Example 66. executeFindEndpoints - Usage Example

This example displays all endpoints that are categorized within the Certification taxonomy.

<bsc:parseUddiQuery var="endpointQuery" scope="request">
    <find_binding xmlns="urn:uddi-org:api_v3">
        <findQualifiers>
            <findQualifier>
                uddi:uddi.org:findqualifier:approximatematch
            </findQualifier>
        </findQualifiers>
        <categoryBag>
            <keyedReference tModelKey="uddi:65719168-72c6-3f29-8c20-62defb0961c0" 
             keyValue="%"/>
            <keyedReference tModelKey="uddi:uddi.org:wsdl:types" 
                keyValue="portType"/>
        </categoryBag>
    </find_binding>
</bsc:parseUddiQuery>

<syswf:component prefix="endpoints" name="executeFindEndpoints">
    <syswf:param name="query" value="${endpointQuery}"/>
</syswf:component>
interfaceSearchResults  Locate

This component executes a find_tModel UDDI query and displays Interfaces that match the query. Alternatively, the component may be given a list of Endpoints to display. This alternative approach is recommended when the result cannot be produced by an UDDI query directly, such as when some post-processing required.

The results are displayed in a standard layout that allows the user to select a view from among the supported ones (common, business, etc.).

Table 130.  interfaceSearchResults Parameters

ParamDescriptionRequired
interfaceListMust hold an instance of either of the following:
org.systinet.uddi.client.v3.struct.TModelList
org.systinet.uddi.client.v3.struct.TModelDetail
org.systinet.uddi.client.v3.struct.TModelArrayList
The query will not be executed, rather Interfaces which are given in the list will be displayed.
yes, exclusive with query
defaultViewThe component name of the view component that should be displayed by default. The valid names are:
  • resourcesPortTypeResults - common results view

  • portTypeTechnicalResults - technical results view

If the parameter is not present, the resourcesPortTypeResults view will be displayed.
no
sortedByThe name of the column for the initial sort order. The list of applicable values depends on the selected default view component. no
queryMust hold an instance of the org.systinet.uddi.client.v3.struct.Find_tModel object. The query will be executed in UDDI using the logged user's credentials. yes, exclusive with endpointList

interfaceSearchResults component in action

Example 67. Component Parameters

This example displays all interfaces that are categorized as "Stable" in the interface:status taxonomy.

<bsc:parseUddiQuery var="interfaceQuery" scope="request">
    <find_tModel xmlns="urn:uddi-org:api_v3">
        <categoryBag>
            <keyedReference
                tModelKey="uddi:systinet.com:taxonomy:interface:status"
                keyValue="Stable"
            />
        </categoryBag>
    </find_tModel>
</bsc:parseUddiQuery>

<syswf:component prefix="interfaces" name="interfaceSearchResults">
    <syswf:param name="query" value="${interfaceQuery}"/>
</syswf:component>

executeFindInterfaces  Locate

This component executes a find_tModel UDDI query and provides a list of TModels (Interfaces) that match the query. The result of the query is placed into a result variable into the local session.

The specified result variable is a cache for the result value. If the variable is not empty, the query is not executed. You must clear the variable in order to get a fresh result set. The cache is automatically cleared when a task is selected.

Table 131.  executeFindInterfaces Parameters

ParamDescriptionRequired
queryMust hold an instance of the org.systinet.uddi.client.v3.struct.Find_tModel object. The query will be executed in UDDI using the logged user's credentials. yes
varUsed to name the result variable in the local session in which the component will store the result of the query. The stored result will be of type org.systinet.uddi.client.v3.struct.TModelDetail. yes

executeFindInterfaces component in action

Example 68. Component Parameters

This example displays tModel names of all interfaces that are categorized as "Stable" in the interface:status taxonomy.

<bsc:parseUddiQuery var="interfaceQuery" scope="request">
    <find_tModel xmlns="urn:uddi-org:api_v3">
        <categoryBag>
            <keyedReference
                tModelKey="uddi:systinet.com:taxonomy:interface:status"
                keyValue="Stable"
            />
        </categoryBag>
    </find_tModel>
</bsc:parseUddiQuery>

<syswf:component prefix="interfaces" name="excuteFindInterfaces">
    <syswf:param name="query" value="${interfaceQuery}"/>
    <syswf:param name="var" value="searchResults"/>
</syswf:component>

Stable interface names:
<ul>
<c:forEach items="${searchResults.TModelArrayList}" var="iface">
    <li><c:out value="${iface.name.value}"/></li>
</c:forEach>
</ul>

bindingSearchResults  Locate

This component executes a find_tModel UDDI query and displays Bindings that match the query. Alternatively, the component may be given a list of tModels (Bindings) to display. This alternative approach is recommended when the result can not be produced by an UDDI query directly, such as when some post-processing required.

The results are displayed in a standard layout that allows the user to select a view from among the supported ones (common, business, etc.).

Table 132.  bindingSearchResults Parameters

ParamDescriptionRequired
bindingListMust hold an instance of one of the following:
org.systinet.uddi.client.v3.struct.TModelList
org.systinet.uddi.client.v3.struct.TModelDetail
org.systinet.uddi.client.v3.struct.TModelArrayList
The query will not be executed, rather Interfaces which are given in the list will be displayed.
yes, exclusive with query
defaultViewThe component name of the view component that should be displayed by default. Valid names are:
  • bindingsCommonResults - common results view

  • bindingsTechResults - technical results view

If the parameter is not present, the serviceCommonResults view will be displayed.
no
sortedByThe name of the column for the initial sort order. The list of applicable values depends on the selected default view Component. no
queryValue must hold an instance of the org.systinet.uddi.client.v3.struct.Find_tModel object. The query will be executed in UDDI using the logged user's credentials. yes, exclusive with bindingList

Example 69. bindingSearchResults - Usage Example

This example displays all Bindings

<bsc:parseUddiQuery var="bindingQuery" scope="request">
    <find_tModel xmlns="urn:uddi-org:api_v3">
    </find_tModel>
</bsc:parseUddiQuery>

<syswf:component prefix="bindings" name="bindingSearchResults">
    <syswf:param name="query" value="${bindingQuery}"/>
</syswf:component>
executeFindBinding  Locate

This component executes a find_tModel UDDI query in order to find Bindings. The result of the query is stored in a local session variable for use with other components and JSP pages.

The specified result variable is considered to be a cache for the result value. If the variable is not empty, the query is not executed. You must clear the variable in order to get a fresh result set. The cache is automatically cleared when a task is selected.

Table 133.  executeFindBinding Parameters

ParamDescriptionRequired
queryMust hold an instance of the org.systinet.uddi.client.v3.struct.Find_tModel object. The query will be executed in UDDI using the logged user's credentials. yes
varUsed to name the result variable in the local session in which the component will store the result of the query. The stored result will be of type org.systinet.uddi.client.v3.struct.TModelDetail. yes

executeFindBinding component in action

Example 70. Component Parameters

This example displays names of all Bindings

<bsc:parseUddiQuery var="bindingQuery" scope="request">
    <find_tModel xmlns="urn:uddi-org:api_v3">
    </find_tModel>
</bsc:parseUddiQuery>

<syswf:component prefix="bindings" name="executeFindBindings">
    <syswf:param name="query" value="${bindingQuery}"/>
    <syswf:param name="var" value="searchResults"/>
</syswf:component>

Binding names:
<ul>
<c:forEach items="${searchResults.TModelArrayList}" var="binding">
    <li><c:out value="${binding.names.value}"/></li>
</c:forEach>
</ul>

getOperations  Locate

This component fetches a list of operations for a Binding or a PortType from the WSDL. As the operation list is not published into UDDI, the component will fetch and parse the WSDL from its original location. It operates on a tModel that represents either a WSDL Binding or a WSDL PortType. It extracts the WSDL location from the tModel (according to the WSDL mapping TN).

The result will be available as an array of com.systinet.uddi.bui.standard.view.OperationView. The result is also cached in the local session, keyed by the WSDL location (URI) for faster access in subsequent calls. If a Binding is given in the binding parameter, the result will include binding Operations. If a PortType is given in the interface parameter, the result will include PortType operations and the messages used by those operations.

The component will optionally extract all messages from the operations and collect them in the specified result variable. Note that this applies to PortType operations only.

If WSDL parsing or download fails, the component will store the failure ( java.lang.Throwable) in the specified local session variable. The caller may then display an appropriate message.

Table 134.  getOperations Parameters

ParamDescriptionRequired
interfaceMust hold an instance of the org.systinet.uddi.client.v3.struct.TModel class. The tModel should represent a WSDL PortType according to the WSDL mapping technical notes. yes, exclusive with "binding"
bindingMust hold an instance of the org.systinet.uddi.client.v3.struct.TModel class. The tModel should represent a WSDL Binding according to the WSDL mapping technical notes. yes, exclusive with "interface"
errorName of the output variable that will receive the java.lang.Throwable instance if an error occurs during WSDL processing. The result will be stored in the request scope. no
allMessagesName of the output variable that will receive the collection of all messages (java.util.Collection that contains an instances of om.systinet.uddi.bui.standard.view.MessageView). no
variableName of the output variable that will receive the list of operations extracted from the PortType or Binding definition. The value will be an instance of java.util.Collection that contains an instances of com.systinet.uddi.bui.standard.view.OperationView.  

Example 71. getOperations example

The following example displays the list of operations of a WSDL PortType. It prints their names and descriptions into an HTML table.

<!-- Get the list of operations for the WSDL PortType represented by the "tModel" -->
<syswf:component prefix="content" name="getOperations">
    <syswf:param name="variable" value="opers"/>
    <syswf:param name="interface" value="${tModel}"/>
</syswf:component>

<!-- Print out tabularized operation info -->
<table width="100%">
<tr>
    <th width="30%">Operation name</th>
    <th width="70%">Description</th>
</tr>
<c:forEach items="opers" var="operation">
    <tr>
        <!-- Print the operation name -->
        <td class="unfoldedRow" class="unfoldedHeader">
            <c:out value="${operation.name}"/>
        </td>

        <!-- Print the operation documentation -->
        <td class="unfoldedRow" class="unfoldedHeader">
            <c:out value="${operation.documentation}"/>
        </td>
    </tr>
</c:forEach>
</table>
getDocumentation  Locate

This component extracts the documentation of a certain type from an org.systinet.uddi.client.v3.struct.OverviewDocArrayList instance. The useType can be given as an exact value, or a regular expression match using the "approximateMatch" findQualifier. All OverviewURLs that match the requested useType are returned in a collection through the result variable declared in the request scope.

Table 135.  getOperations Parameters

ParamDescriptionRequired
overviewDocArrayListAn instance of org.systinet.uddi.client.v3.struct.OverviewDocArrayList to search in. yes
useTypeThe required useType of the OverviewURL. It can contain a literal string or a regular expression. yes
variableName of the variable in which the result should be stored. The variable will be declared at the request scope. The stored value will be a java.util.Collection that contains instances of org.systinet.uddi.client.v3.struct.OverviewURL. yes
findQualifierDetermines whether the value in the "useType" parameter is interpreted as a literal or as a regular expression. The allowed values are:
  • approximateMatch - useType contains a regular expression that the OverviewURL's useType must satisfy

  • exactMatch - useType is a literal and the OverviewURL's useType must be equal to this literal (case-insensitive).

no

Example 72. getDocumentation example

The following example displays the WSDL URL for a WSDL service:

<syswf:component prefix="doc" name="getDocumentation" >
    <syswf:param name="variable" value="documentation"/>
    <syswf:param name="docArrayList" value="${tModel.overviewDocArrayList}"/>
    <syswf:param name="useType" value="documentation"/>
</syswf:component>

<!-- Print out the URL -->
<a href="<c:out value="${documentation[0].overviewURL.value}"/>">
    <c:out value="${documentation[0].overviewURL.value}"/>
</a>
getServiceEndpoints  Locate

This component analyzes the Binding Templates of a Business Service, and creates a list of valid WSDL Endpoints mapped to those Binding Templates. The component produces an array of com.systinet.uddi.bui.standard.util.Endpoints for endpoints found on the Service.

The Endpoint is identified by a URL (location); some Interfaces or some Bindings (com.systinet.uddi.bui.standard.util.Binding) are deployed at that Location, that in turn communicate using Interfaces (com.systinet.uddi.bui.standard.util.Interface). These structures will be returned for each of the Endpoints. Each of the structures contains a reference to the underlying UDDI entity (Binding Template or tModel) so the caller can access the registered information in full.

Table 136.  getServiceEndpoints Parameters

ParamDescriptionRequired
serviceThe instance of org.systinet.uddi.client.v3.struct.BusinessService, whose Endpoints should be returned. yes
variableName of the request-scoped variable where the component will store the result. The result will be an array of com.systinet.uddi.bui.standard.util.Endpoint, one instance for each Endpoint. yes

Example 73. getServiceEndpoints Example

The following example lists names and descriptions of all interfaces implemented for a service. It iterates through all available Endpoints and the exposed Interfaces and produces the list into a HTML table.

<syswf:component prefix="content" name="getServiceEndpoints" >
    <syswf:param name="variable" value="endpoints"/>
    <syswf:param name="service" value="${service}"/>
</syswf:component>


<table width="100%">
    <tr>
    <th width="30%">Interface name</th>
    <th width="70%">Description</th>
    </tr>
    <c:forEach items="${endpoints}" var="endpoint">
        <c:forEach items="${endpoint.interfaces}" var="iface">
            <bsc:setLocalizedDescriptions var="descriptions" 
            value="${iface.portTypeTModel.descriptionArrayList}" 
                langCode="${userDefaultLanguage}"/>
            <tr>
            <td >
                <c:out value="${iface.name}"/>
            </td>
            <td><c:out value="${descriptions[0].value}"/></td>
            </tr>
        </c:forEach>
    </c:forEach>
</table>
selectCategory  Locate

This component helps with UDDI query construction. It takes an existing query and adds a KeyedReference into the query's CategoryBag. This will either restrict, or broaden the search, depending on the findQualifiers present in the query.

The component may act in several ways. It can:

  • Select entities that are categorized within the given taxonomy. This is done by using keyValue of % and the approximateMatch findQualifier.

  • Select entities that are categorized with exactly the passed value.

  • Perform an approximateMatch on the keyValue.

The component takes the session variable identified by the passed variable name and modifies the structure to contain the addition search criteria. The following query structures are supported:

  • org.systinet.uddi.client.v3.struct.Find_binding

  • org.systinet.uddi.client.v3.struct.Find_business

  • org.systinet.uddi.client.v3.struct.Find_service

  • org.systinet.uddi.client.v3.struct.Find_tModel

Table 137.  selectCategory Parameters

ParamDescriptionRequired
categoryThe tModelKey of the category. A KeyedReference with this tModelKey will be added to the CategoryBag of the query. yes
variableThe name of the request-scoped variable where the component will store the result. The result will be an array of com.systinet.uddi.bui.standard.util.Endpoint, one instance for each Endpoint. yes