轉換器,顧名思義,是一個轉換訊息的元件。例如,轉換器可以修改訊息的內容,或新增或移除屬性。轉向器核心橋接器 皆支援。

轉換器只是一個實作 org.apache.activemq.artemis.core.server.transformer.Transformer 介面的類別。

public interface Transformer {

   default void init(Map<String, String> properties) { }

   Message transform(Message message);
}

在代理程式實例化類別後,會立即呼叫 init 方法。有一個預設的方法實作,因此實作 init 是可選的。但是,如果轉換器需要任何組態屬性,它應該實作 init,代理程式會使用 java.util.Map 將已組態的鍵/值對傳遞給轉換器。

1. 設定

最基本的設定只需要指定轉換器的類別名稱,例如:

<transformer-class-name>
   org.foo.MyTransformer
</transformer-class-name>

然而,如果轉換器需要任何組態屬性,可以使用稍微不同的語法來指定,例如:

<transformer>
   <class-name>org.foo.MyTransformerWithProperties</class-name>
   <property key="transformerKey1" value="transformerValue1"/>
   <property key="transformerKey2" value="transformerValue2"/>
</transformer>

任何轉換器實作都需要新增到代理程式的類別路徑中。請參閱關於新增執行階段相依性的文件,以了解如何使您的轉換器可供代理程式使用。