クラス ToCloudEventTransformer

実装済みのインターフェース一覧:
Aware, BeanFactoryAware, BeanNameAware, InitializingBean, ApplicationContextAware, ComponentSourceAware, ExpressionCapable, GenericTransformer<Message<?>, Message<?>>, NamedComponent, Transformer

public class ToCloudEventTransformer extends AbstractTransformer
属性と拡張子のマッピングを使用してメッセージを CloudEvent 形式に変換します。

このトランスフォーマーは 2 つの出力モードをサポートします。

  • 構造化コンテンツモード EventFormat が利用可能になった場合(setEventFormat(EventFormat) で設定または setEventFormatContentTypeExpression(Expression) で解決された場合)、CloudEvent はそのフォーマット(JSON、XML など)を使用してメッセージペイロードに直列化されます。出力メッセージには、直列化された CloudEvent がペイロードとして含まれ、MessageHeaders.CONTENT_TYPE はフォーマットの直列化コンテンツ型に設定されます。
  • バイナリコンテンツモード EventFormat が利用できない場合、トランスフォーマーは ToCloudEventTransformer.MessageBuilderMessageWriter を使用して CloudEvent をメッセージに変換します。このメッセージでは、CloudEvent 属性が設定可能なプレフィックス(デフォルト: CloudEventHeaders.PREFIX)を持つヘッダーにマッピングされ、CloudEvent データがペイロードになります。出力メッセージには、MessageHeaders.CONTENT_TYPE が application/cloudevents に設定された元のデータがペイロードとして含まれます。
導入:
7.1
作成者:
Glenn Renfro, Artem Bilan
  • コンストラクターの詳細

    • ToCloudEventTransformer

      public ToCloudEventTransformer()
      拡張パターンのないインスタンスを作成します。
    • ToCloudEventTransformer

      public ToCloudEventTransformer(StringSE... extensionPatterns)
      指定された拡張パターンを使用してインスタンスを作成します。
      パラメーター:
      extensionPatterns - メッセージヘッダーを CloudEvent の拡張機能として追加すべきかどうかを評価するためのパターン
  • 方法の詳細

    • setEventIdExpression

      public void setEventIdExpression(Expression eventIdExpression)
      Expression を設定して CloudEvent id を作成します。

      デフォルトでは、メッセージの MessageHeaders から id を抽出します。

      パラメーター:
      eventIdExpression - 各 CloudEvent に対して id を作成する式
    • setSourceExpression

      public void setSourceExpression(Expression sourceExpression)
      Expression を設定して CloudEvent source を作成します。

      デフォルトは "/spring/" + appName + "." + getBeanName()) です。

      パラメーター:
      sourceExpression - 各 CloudEvent に対して source を作成する式
    • setTypeExpression

      public void setTypeExpression(Expression typeExpression)
      Expression を設定して、CloudEvent から type を抽出するようにします。

      デフォルトは spring.message です。

      パラメーター:
      typeExpression - 各 CloudEvent に対して type を作成する式
    • setDataSchemaExpression

      public void setDataSchemaExpression(Expression dataSchemaExpression)
      Expression を設定して、CloudEvent 用の dataSchema を作成します。
      パラメーター:
      dataSchemaExpression - 各 CloudEvent に対して dataSchema を作成する式
    • setSubjectExpression

      public void setSubjectExpression(Expression subjectExpression)
      Expression を設定して、CloudEvent 用の subject を作成します。
      パラメーター:
      subjectExpression - 各 CloudEvent に対して subject を作成する式
    • setEventFormat

      public void setEventFormat(io.cloudevents.core.format.EventFormat eventFormat)
      EventFormat を CloudEvent の直列化に使用するように設定します。

      eventFormat と eventFormatContentTypeExpression が指定されている場合、eventFormat が優先されます。

      パラメーター:
      eventFormat - CloudEvents を直列化するためのイベントフォーマット
    • setEventFormatContentTypeExpression

      public void setEventFormatContentTypeExpression(Expression eventFormatContentTypeExpression)
      EventFormatProvider を使用して EventFormat を決定する場合は、Expression でクラウドイベント形式のコンテンツ型を生成するように設定します。

      eventFormat と eventFormatContentTypeExpression が指定されている場合、eventFormat が優先されます。

      パラメーター:
      eventFormatContentTypeExpression - EventFormatProvider.resolveFormat(String) のコンテンツ型を作成する式
      関連事項:
      • ContentType
    • setCloudEventPrefix

      public void setCloudEventPrefix(StringSE cloudEventPrefix)
      バイナリコンテンツモードで、CloudEvent ヘッダーのプレフィックスを設定します。

      デフォルトは CloudEventHeaders.PREFIX です。

      パラメーター:
      cloudEventPrefix - CloudEvent ヘッダーに使用するプレフィックス
    • onInit

      protected void onInit()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスは、初期化ロジック用にこれを実装できます。
      オーバーライド:
      クラス IntegrationObjectSupportonInit 
    • doTransform

      protected ObjectSE doTransform(Message<?> message)
      クラスからコピーされた説明: AbstractTransformer
      サブクラスは、変換ロジックを提供するためにこのメソッドを実装する必要があります。戻り値自体がメッセージの場合、結果として使用されます。そうでない場合、null 以外の戻り値が結果メッセージのペイロードとして使用されます。
      次で指定:
      クラス AbstractTransformerdoTransform 
      パラメーター:
      message - メッセージ。
      戻り値:
      変換の結果。
    • getComponentType

      public StringSE getComponentType()