19.7. 例

http 経由で camel avro プロデューサーを使用する例:

        <route>
            <from uri="direct:start"/>
            <to uri="avro:http:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
            <to uri="log:avro"/>
        </route>

上記の例では、CamelAvroMessageName ヘッダーを入力する必要があります。2.12 以降、次の構文を使用して定数メッセージを呼び出すことができます。

        <route>
            <from uri="direct:start"/>
            <to uri="avro:http:localhost:{{avroport}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
            <to uri="log:avro"/>
        </route>

netty 経由で camel avro コンシューマーを使用してメッセージを消費する例:

        <route>
            <from uri="avro:netty:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
            <choice>
                <when>
                    <el>${in.headers.CamelAvroMessageName == 'put'}</el>
                    <process ref="putProcessor"/>
                </when>
                <when>
                    <el>${in.headers.CamelAvroMessageName == 'get'}</el>
                    <process ref="getProcessor"/>
                </when>
            </choice>
        </route>

2.12 以降、同じタスクを実行するために 2 つの異なるルートを設定できます。

        <route>
            <from uri="avro:netty:localhost:{{avroport}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol">
            <process ref="putProcessor"/>
        </route>
        <route>
            <from uri="avro:netty:localhost:{{avroport}}/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol&singleParameter=true"/>
            <process ref="getProcessor"/>
        </route>

上記の例では、get はパラメーターを 1 つだけ受け取るため、singleParameter が使用され、getProcessor は 本体で直接 Value クラスを受け取りますが、putProcessor は 配列の内容として文字列キーと値値が入力されたサイズ 2 の配列を受け取ります。