On-the-fly Provision of Interceptors - 7.3

Talend ESB Service Developer Guide

Version
7.3
Language
English
Product
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Module
Talend ESB
Talend Runtime
Content
Design and Development
Installation and Upgrade
Last publication date
2023-04-17

The policy framework, when activated (by loading the PolicyEngine and setting its "enabled" attribute to true), installs a couple of interceptors at bus level which execute early on in their respective interceptor chains:

Role

Chain

Phase

Interceptor

Effective Subject Policies Known

Client

Out

SETUP

ClientPolicy-OutInterceptor

Service, Endpoint, Operation, (Input) Message

Client

In

RECEIVE

ClientPolicy-InInterceptor

Service, Endpoint

Client

InFault

RECEIVE

ClientPolicy-InFault-Interceptor

Service, Endpoint

Server

In

RECEIVE

ServerPolicy-InInterceptor

Service, Endpoint

Server

OutFault

SETUP

ServerPolicy-OutFault-Interceptor

Service, Endpoint, Operation, (Fault) Message

Server

Out

SETUP

ServerPolicy-OutInterceptor

Service, Endpoint, Operation, (Out) Message

The main purpose of these policy interceptors is to add further interceptors that are required to support the effective policy of the underlying message - even if that policy is not yet known at the time the policy interceptor executes (because the operation is not yet known at that time). If the effective message policy is known, the assertions of its selected alternative are inserted into the message in the form of an AssertionInfoMap. This is a map, keyed by assertion type name, of collections of AssertionInfo objects, the latter being stateful (asserted/not asserted) representations of Assertion objects. When the effective message policy is not known, not only the assertions for the selected alternative in the effective endpoint policy are included in the AssertionInfoMap, but also all assertions in all alternatives of all of the operation and message specific policies. Not all of these will be asserted at the end of the chain, but that is fine if it turns out the unasserted assertions apply to operation sayHi when in fact the chain has been processing the message for a greetMe request!