Class MessageSenderSettings

java.lang.Object
nablarch.fw.messaging.MessageSenderSettings

@Published(tag="architect") public class MessageSenderSettings extends Object
MessageSenderの設定情報を保持するクラス。
Author:
Kiyohito Itoh
  • Constructor Details

    • MessageSenderSettings

      public MessageSenderSettings(String requestId)
      コンストラクタ。
       リポジトリから設定値を取得し初期化を行う。
       
       <キューを使用した通信で使用する設定項目>
       デフォルト設定
       messageSender.DEFAULT.messagingProviderName=MessagingProviderをリポジトリから取得する際に使用するコンポーネント名
       messageSender.DEFAULT.destination=送信キュー名(論理名)
       messageSender.DEFAULT.replyTo=受信キュー名(論理名)
       messageSender.DEFAULT.retryCount=タイムアウト発生時の再送回数。再送しない場合は0以下を指定。デフォルトは-1
       messageSender.DEFAULT.formatDir=フォーマット定義ファイルの格納ディレクトリ(論理名)。デフォルトはformat
       messageSender.DEFAULT.headerFormatName=ヘッダフォーマット名
       messageSender.DEFAULT.messageConvertorName=SyncMessageConvertorをリポジトリから取得する際に使用するコンポーネント名
      
       個別設定
       messageSender.リクエストID.messagingProviderName=MessagingProviderをリポジトリから取得する際に使用するコンポーネント名。デフォルト設定を指定しない場合は必須
       messageSender.リクエストID.destination=送信キュー名(論理名)。デフォルト設定を指定しない場合は必須
       messageSender.リクエストID.replyTo=受信キュー名(論理名)。デフォルト設定を指定しない場合は必須
       messageSender.リクエストID.timeout=応答タイムアウト(単位:ミリ秒)。デフォルトは-1。0以下または指定がない場合はMessagingProviderの設定値となる
       messageSender.リクエストID.retryCount=タイムアウト発生時の再送回数。再送しない場合は0以下を指定
       messageSender.リクエストID.headerFormatName=ヘッダフォーマット名。デフォルト設定を指定しない場合は必須
       messageSender.リクエストID.sendingRequestId=送信用リクエストID。メッセージ処理用のリクエストIDが重複する場合に使用する。
                                                   送信用リクエストIDが指定された場合は、送信用リクエストIDの値をヘッダのリクエストIDに設定する。
       messageSender.リクエストID.messageConvertorName=SyncMessageConvertorをリポジトリから取得する際に使用するコンポーネント名
       
       
       <HTTP通信で使用する設定項目>
       以下の項目が定義されているリクエストについて、「HTTP通信を行う」とみなす。
       ・messageSender.リクエストID.messageSenderClient
       
       デフォルト設定
       messageSender.DEFAULT.httpMessagingUserId=フレームワーク制御ヘッダーに設定するユーザID
       messageSender.DEFAULT.httpMethod=通信に使用するHTTPメソッド
       messageSender.DEFAULT.httpConnectTimeout=コネクションタイムアウト(単位:ミリ秒)。0の場合は、サーバから切断されるまで待ち続ける。
       messageSender.DEFAULT.httpReadTimeout=読み取りタイムアウト(単位:ミリ秒)。0の場合は、サーバからデータを読み終わるまで待ち続ける。
       messageSender.DEFAULT.sslContextComponentName=SSLContext取得コンポーネント(論理名)。SSL通信時、証明書の設定を行いたい場合に設定する。
       messageSender.DEFAULT.httpProxyHost=プロキシサーバ
       messageSender.DEFAULT.httpProxyPort=プロキシサーバのポート
       messageSender.DEFAULT.httpMessageIdGeneratorComponentName=HTTPヘッダに付与するメッセージID(キー名:X-Message-Id)の採番コンポーネント(任意項目)。
       
       個別設定
       messageSender.リクエストID.messageSenderClient=MessageSenderClient通信クライアント(論理名)。HTTP通信時は必須。
       messageSender.リクエストID.httpMessagingUserId=フレームワーク制御ヘッダーに設定するユーザID。任意項目。
       messageSender.リクエストID.uri=接続先uri。必須項目
       messageSender.リクエストID.httpMethod=通信に使用するHTTPメソッド
       messageSender.リクエストID.httpConnectTimeout=コネクションタイムアウト(単位:ミリ秒)。デフォルト値にも、本項目にも指定がない場合は、0を設定したとみなす。
       messageSender.リクエストID.httpReadTimeout=コネクションタイムアウト(単位:ミリ秒)。デフォルト値にも、本項目にも指定がない場合は、0を設定したとみなす。
       messageSender.リクエストID.sslContextComponentName=SSLContext取得コンポーネント(論理名)。任意項目。
       messageSender.リクエストID.httpProxyHost=プロキシサーバ
       messageSender.リクエストID.httpProxyPort=プロキシサーバのポート
       messageSender.リクエストID.httpMessageIdGeneratorComponentName=HTTPヘッダに付与するメッセージID(キー名:X-Message-Id)の採番コンポーネント(任意項目)。
       
       
       <キューを使用した通信、HTTP通信共通事項>
       デフォルト設定
       messageSender.DEFAULT.syncMessagingEventHookNames=同期送信の前後処理をリポジトリから取得する際に使用するコンポーネント名(論理名)。複数指定可(「,」で区切って指定)。任意項目。
       
       個別設定
       messageSender.リクエストID.syncMessagingEventHookNames=同期送信の前後処理をリポジトリから取得する際に使用するコンポーネント名(論理名)。複数指定可(「,」で区切って指定)。任意項目。
       
       送信電文データと受信電文データのフォーマッタは下記のフォーマット名から取得する。
       
           送信電文データのフォーマット名: リクエストID+"_SEND"
           受信電文データのフォーマット名: リクエストID+"_RECEIVE"
       
      Parameters:
      requestId - リクエストID
  • Method Details

    • canUseMessageSenderClient

      public boolean canUseMessageSenderClient()
      messageSenderClientを使用した通信を行うか否かを取得する。
      Returns:
      trueの場合にmessageSenderClientを使用した通信を行う。
    • getComponent

      public <T> T getComponent(String propertyName, MessageSenderSettings.SettingType settingType, boolean required)
      コンポーネント名の設定値を使用してリポジトリからコンポーネントを取得する。
       getStringSetting(String, SettingType, boolean, String)メソッドを使用して
       取得したコンポーネント名を使用してリポジトリからコンポーネントを取得する。
       コンポーネント名取得の詳細はgetStringSetting(String, SettingType, boolean, String)メソッド
       のJavaDocを参照。
       
       コンポーネント名が指定され、かつrequired属性がtrueの場合に、
       リポジトリからコンポーネントが取得できない場合は実行時例外を送出する。
       
      Type Parameters:
      T - コンポーネントの型
      Parameters:
      propertyName - プロパティ名
      settingType - 設定値のタイプ
      required - 必須の場合はtrue
      Returns:
      コンポーネント
    • getComponentList

      public <T> List<T> getComponentList(String propertyName, MessageSenderSettings.SettingType settingType, boolean required)
      コンポーネント名の設定値を使用してリポジトリからコンポーネントを取得する(「,」区切りで定義された複数コンポーネントの読み込みに対応)。
       getStringSetting(String, SettingType, boolean, String)メソッドを使用して
       取得したコンポーネント名を使用してリポジトリからコンポーネントを取得する。
       コンポーネント名取得の詳細はgetStringSetting(String, SettingType, boolean, String)メソッド
       のJavaDocを参照。
       
       コンポーネント名が指定され、かつrequired属性がtrueの場合に、
       リポジトリからコンポーネントが取得できない場合は実行時例外を送出する。
       
      Type Parameters:
      T - コンポーネントの型
      Parameters:
      propertyName - プロパティ名
      settingType - 設定値のタイプ
      required - 必須の場合はtrue
      Returns:
      コンポーネント
    • getFormatter

      public DataRecordFormatter getFormatter(String propertyName, MessageSenderSettings.SettingType settingType, String formatDir, String formatName)
      指定されたフォーマット名に対応するフォーマッタを取得する。
      Parameters:
      propertyName - プロパティ名
      settingType - 設定値のタイプ
      formatDir - フォーマット定義ファイルの格納ディレクトリ(論理名)
      formatName - フォーマット名
      Returns:
      指定されたフォーマット名に対応するフォーマッタ
    • getSettingRequestId

      public String getSettingRequestId()
      設定情報キーのリクエストIDを取得する。
      Returns:
      設定情報キーのリクエストID
    • getSendingRequestId

      public String getSendingRequestId()
      送信用リクエストIDを取得する。

      送信用リクエストIDが設定されない場合は、設定情報キーのリクエストIDが返される。

      Returns:
      送信用リクエストID
    • getMessagingProvider

      public MessagingProvider getMessagingProvider()
      MessagingProviderを取得する。
      Returns:
      MessagingProvider
    • getMessageConvertor

      public SyncMessageConvertor getMessageConvertor()
      SyncMessageConvertorを取得する。
      Returns:
      SyncMessageConvertor。 指定がない場合はnull
    • getDestination

      public String getDestination()
      送信キュー名(論理名)を取得する。
      Returns:
      送信キュー名(論理名)
    • getReplyTo

      public String getReplyTo()
      受信キュー名(論理名)を取得する。
      Returns:
      受信キュー名(論理名)
    • getRetryCount

      public int getRetryCount()
      リトライ回数を取得する。
      Returns:
      リトライ回数
    • getTimeout

      public long getTimeout()
      応答タイムアウト(単位:ミリ秒)を取得する。
      Returns:
      応答タイムアウト(単位:ミリ秒)
    • getHeaderFormatter

      public DataRecordFormatter getHeaderFormatter()
      ヘッダのフォーマッタ(送信電文と受信電文で共通)を取得する。
      Returns:
      ヘッダのフォーマッタ(送信電文と受信電文で共通)
    • getSendingDataFormatter

      public DataRecordFormatter getSendingDataFormatter()
      送信電文データのフォーマッタを取得する。
      Returns:
      送信電文データのフォーマッタ
    • getReceivedDataFormatter

      public DataRecordFormatter getReceivedDataFormatter()
      受信電文データのフォーマッタを取得する。
      Returns:
      受信電文データのフォーマッタ
    • getSyncMessagingEventHookList

      public List<SyncMessagingEventHook> getSyncMessagingEventHookList()
      メッセージ送信の処理前後に行う処理を取得する。
      Returns:
      メッセージ送信の処理前後に行う処理
    • getMessageSenderClient

      public MessageSenderClient getMessageSenderClient()
      MessageSenderから呼び出される基本APIを実装したインターフェースを取得する。

      MessagingProviderMessageSenderClientが共に本クラスに設定されている場合は、MessageSenderClientを優先的に使用する。


      Returns:
      MessageSenderから呼び出される基本APIを実装したインターフェース
    • getHttpMessagingUserId

      public String getHttpMessagingUserId()
      リアルタイム通信で使用するユーザIDを取得する。
      Returns:
      リアルタイム通信で使用するユーザID
    • getHttpConnectTimeout

      public int getHttpConnectTimeout()
      HTTP通信用接続タイムアウトを取得する。
      Returns:
      接続タイムアウト
    • getHttpReadTimeout

      public int getHttpReadTimeout()
      HTTP通信用読み取りタイムアウトを取得する。
      Returns:
      読み取りタイムアウト
    • getHttpMethod

      public String getHttpMethod()
      HTTPMethodを取得する。
      Returns:
      HTTPMethod
    • getHttpMessageIdGenerator

      public HttpMessageIdGenerator getHttpMessageIdGenerator()
      HTTP通信時に使用するメッセージID採番コンポーネントを取得する。
      Returns:
      HTTP通信の接続先URI
    • getUri

      public String getUri()
      HTTP通信の接続先URIを取得する。
      Returns:
      HTTP通信の接続先URI
    • getSslContextSettings

      public HttpSSLContextSettings getSslContextSettings()
      HTTP通信時に使用するSSLContextを取得する。
      Returns:
      HTTP通信の接続先URI
    • getHttpProxyHost

      public String getHttpProxyHost()
      HTTP通信時に使用するProxyのホストを取得する。
      Returns:
      HTTP通信時に使用するProxyのホスト
    • getHttpProxyPort

      public Integer getHttpProxyPort()
      HTTP通信時に使用するProxyのポートを取得する。
      Returns:
      HTTP通信時に使用するProxyのポート
    • getIntSetting

      public Integer getIntSetting(String propertyName, MessageSenderSettings.SettingType settingType, boolean required, Integer defaultValue)
      Integer型の設定値を取得する。
       getStringSetting(String, SettingType, boolean, String)メソッドを使用して
       取得した設定値をInteger型に変換して返す。
       設定値取得の詳細はgetStringSetting(String, SettingType, boolean, String)メソッド
       のJavaDocを参照。
       
      Parameters:
      propertyName - プロパティ名
      settingType - 設定値のタイプ
      required - 必須の場合はtrue
      defaultValue - デフォルト値
      Returns:
      Integer型の設定値
    • getLongSetting

      public Long getLongSetting(String propertyName, MessageSenderSettings.SettingType settingType, boolean required, Long defaultValue)
      Long型の設定値を取得する。
       getStringSetting(String, SettingType, boolean, String)メソッドを使用して
       取得した設定値をLong型に変換して返す。
       設定値取得の詳細はgetStringSetting(String, SettingType, boolean, String)メソッド
       のJavaDocを参照。
       
      Parameters:
      propertyName - プロパティ名
      settingType - 設定値のタイプ
      required - 必須の場合はtrue
      defaultValue - デフォルト値
      Returns:
      Long型の設定値
    • getStringSetting

      public String getStringSetting(String propertyName, MessageSenderSettings.SettingType settingType, boolean required, String defaultValue)
      String型の設定値を取得する。
       createSettingKey(String, String)メソッドを使用し設定情報キーを取得する。
       
       はじめに個別設定の取得を試み、取得できない場合はデフォルト設定の取得を試みる。
       ただし、settingType引数の指定に応じて個別設定とデフォルト設定の取得を行う。
       
       設定値を取得できない、かつrequired引数がtrueの場合は、実行時例外を送出する。
       設定値を取得できない、かつrequired引数がfalseの場合は、デフォルト値を返す。
       
      Parameters:
      propertyName - プロパティ名
      settingType - 設定値のタイプ
      required - 必須の場合はtrue
      defaultValue - デフォルト値
      Returns:
      String型の設定値
    • createSettingKeyMessage

      public String createSettingKeyMessage(MessageSenderSettings.SettingType settingType, String propertyName)
      エラーメッセージに付加する設定値のタイプに応じた設定情報キーのメッセージを作成する。
       メッセージの形式は下記のとおり。
       
           デフォルト設定のみ            : "defaultKey = [デフォルト設定キー]"
           個別設定のみ                  : "key = [個別設定キー]"
           デフォルト設定と個別設定の両方: "defaultKey = [デフォルト設定キー] or key = [個別設定キー]"
       
       キーはcreateSettingKey(String, String)メソッドを使用して取得する。
       
      Parameters:
      settingType - 設定値のタイプ
      propertyName - プロパティ名
      Returns:
      エラーメッセージに付加する設定値のタイプに応じた設定情報キーのメッセージ