Ce contenu n'est pas disponible dans la langue sélectionnée.

9.3. Message Composition


9.3.1. Message Composers

A MessageComposer composes or decomposes a native binding message to or from SwitchYard's canonical message. It does so in three steps:
  1. Construct a new target message instance.
  2. Copy the content of the message.
  3. Delegate the header/property mapping to a ContextMapper.
A SOAPMessageComposer and CamelMessageComposer are included with SwitchYard. These implementations are used by their associated bindings but you can override these with your own implementations.

9.3.2. Create a Custom Message Composer

Procedure 9.2. Create a Custom Message Composer

  1. Implement the org.switchyard.component.common.composer.MessageComposer interface:
    public interface MessageComposer<T> {
        ContextMapper<T> getContextMapper();
        MessageComposer<T> setContextMapper(ContextMapper<T> contextMapper);
        Message compose(T source, Exchange exchange, boolean create) throws Exception;
        public T decompose(Exchange exchange, T target) throws Exception;
    }
    
  2. Specify your implementation in your switchyard.xml file:
    <binding.xyz ...>
        <messageComposer class="com.example.MyMessageComposer"/>
    </binding.xyz>
    
    

9.3.3. Custom Message Composer Properties

  • The getContextMapper() and setContextMapper() methods are bean properties. If you extend BaseMessageComposer, both properties are implemented for you.
  • Your compose() method needs to take the data from the passed-in source native message and compose a SwitchYard Message based on the specified Exchange. The create parameter determines whether or not we ask the Exchange to create a new Message, or use the existing one.
  • Your decompose() method needs to take the data from the SwitchYard Message in the specified Exchange and "decompose it" into the target native message.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.