变压器只是一个实现了 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>
任何变压器实现都需要添加到代理的类路径中。有关如何使您的变压器可供代理使用,请参阅关于 添加运行时依赖项 的文档。