||
Skip to end of metadata
Go to start of metadata

WSO2 Governance Registry ships with 3 standard executors.

Service Version Executor

The main functionality of this executor is to version services and dependent resources of services(WSDL, Schema and Policy) when a lifecycle promote action happens. There are three main environments, Development, Testing, and Production which are available out-of-the-box, for which this executor can be used.

  1. Initially, the service resource (and its dependencies) will be placed in the Development (or trunk) environment.
  2. When promotion happens, a UI will be displayed for the user to provide new versions of the service and its dependent resources.
  3. Once the user decides to Proceed, the service and its dependencies are moved (or copied) to the Testing (or branches/testing) environment.
  4. Once again, the user will be given the option to Promote from Testing to Production.
  5. Once the user decides to Proceed, the service and its dependencies are moved (or copied) to the Production (or branches/production) environment.

However, the default configuration might not always be the ideal, and users are given the option to tailor their environments using the following configuration.

<execution forEvent="Promote" class="org.wso2.carbon.governance.registry.extensions.executors.ServiceVersionExecutor">
   <parameter name="currentEnvironment" value="/_system/governance/trunk/{@resourcePath}/{@version}/{@resourceName}"/>
   <parameter name="targetEnvironment" value="/_system/governance/branches/testing/{@resourcePath}/{@version}/{@resourceName}"/>
   <parameter name="service.mediatype" value="application/vnd.wso2-service+xml"/>
   <parameter name="wsdl.mediatype" value="application/wsdl+xml"/>
   <parameter name="endpoint.mediatype" value="application/vnd.wso2.endpoint"/>
<execution>

6. Other than the given parameters in the above configuration, there are more parameters which can be defined to instruct the executor to forward community features, associations and dependencies of a resource to the new environment. The parameters are as given below.

a. copyComments - When set to true this parameter instructs the executor to forward the comments of a service to the new environment. set to false by default.

b. copyTags - When set to true this parameter instructs the executor to forward the tags of a service to the new environment. set to false by default.

c. copyRatings - When set to true this parameter instructs the executor to forward the ratings of a service to the new environment. set to false by default.

d. copyAssociations - When set to true this parameter instructs the executor to forward the associations of a service to the new environment. set to false by default.

e. copyDependencies - When set to true this parameter instructs the executor to forward the dependencies of a service to the new environment. set to true by default.

Note

One important fact to note about this executor is that it is mediatype aware and it works only for services.

Demote Action Executor

The Demote Action Executor does nothing but simply preserve the existing resource as it is during the operation of the transition. This is similar to a short-circuit that prevents any changes happening to the existing resource.

Copy Executor

The idea behind the Copy Executor is to support a basic Copy functionality for resources from one location to another. This executor has the ability to work with any mediatype and it is not mediatype aware.

The configuration of the copy executor is somewhat similar to the service version executor.

<execution forEvent="Promote" class="org.wso2.carbon.governance.registry.extensions.executors.CopyExecutor">
   <parameter name="currentEnvironment" value="/_system/governance/e1"/>
   <parameter name="targetEnvironment" value="/_system/governance/e2"/>                                
<execution>
Web Service Executor

Web Service executor allows Web Services to be invoked during lifecycle state transitions. The executor is able to invoke any Web Service that is exposed through a WSDL and the response can be saved to a user-defined location by setting the parameters.

<execution forEvent="Promote" class="org.wso2.carbon.governance.registry.extensions.executors.WSExecutor">
	<parameter name="async" value="false" />
	<parameter name="save.type" value="property" />
	<parameter name="save.name" value="response" />
	<parameter name="response.xpath" value="//ns:return" />
	<parameter name="response.namespace" value="http://ws.apache.org/axis2" />
	<parameter name="response.namespace.prefix" value="ns" />
	<parameter name="epr" value="http://localhost:8080/axis2/services/AdderService.AdderServiceHttpSoap11Endpoint/" />
	<parameter name="payload">
		 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:axis="http://ws.apache.org/axis2">
  			<soapenv:Header/>
   			<soapenv:Body>
      			<axis:add>
         			<axis:args0>4</axis:args0>
        			<axis:args1>7</axis:args1>
      			</axis:add>
   			</soapenv:Body>
		</soapenv:Envelope>
   </parameter>
</execution>	

As seen in the sample configuration there are several parameters that can be defined for the Web Service Executor. Some are required and some are optional parameters.

  1. epr (required) - End Point Reference of the Web Service to be invoked.
  2. payload (required) - The Payload that is needed to invoke the Web Service (take a look at the Web Service Executor sample to understand how the payload can be generated).
  3. async (optional) - Define whether the BPEL process is to be called in a synchronous or asynchronous manner. By default the synchronous approach is used. In the asynchronous mode, no response is saved (Default - synchronous).
  4. response.destination (optional) - defines the path of the resource to which the response is saved (Default - The current resource path).
  5. save.type (optional) - defines whether the response is to be saved as an property or attribute (Default - attribute).
  6. save.name (optional) - defines the name of the property of attribute that response is saved to. If this parameter is not given, the response is not saved even if "async" is set to false.
  7. response.xpath* (optional) - defines the XPath that is to be used to extract an value from the response XML (Default - if not provided the whole response xml will be saved as an string).
  8. response.namespace* (optional) - namespace of the response.
  9. response.namespace.prefix* (optional) - namespace prefix used in the XPath.

Note

If the XPath is to used, all the three properties marked with "*" have to be defined or the XPath functionality does not succeed.

Parameterization

It is possible to provide information in a parameterized format in the Web Service executor configuration. The syntax for parameterized values are as bellow

{@parameterName}

When an value is defined in this manner this will be replaced by a attribute or property with the name "parameterName" . The system will give precedence to attributes and will only check properties if the "parameterName" is not found in attributes. The following configurations uses parameterization. 

<execution forEvent="Promote" class="org.wso2.carbon.governance.registry.extensions.executors.WSExecutor">
	<parameter name="async" value="false" />
	<parameter name="save.type" value="property" />
	<parameter name="save.name" value="response" />
	<parameter name="response.xpath" value="//ns:return" />
	<parameter name="response.namespace" value="http://ws.apache.org/axis2" />
	<parameter name="response.namespace.prefix" value="ns" />
	<parameter name="epr" value="{@epr}" />
	<parameter name="payload">
		 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:axis="http://ws.apache.org/axis2">
  			<soapenv:Header/>
   			<soapenv:Body>
      			<axis:add>
         			<axis:args0>{@xvalue}</axis:args0>
        			<axis:args1>{@yvalue}</axis:args1>
      			</axis:add>
   			</soapenv:Body>
		</soapenv:Envelope>
   </parameter>
</execution>	

Here the epr and the values in the request payload are given in a parameterized format and will be replaced with values from attributes or properties .

 

Currently only the epr and payload parameters support parameterization

 

 

 

  • No labels