2016-03-25 15 views
0

ModuleMedatadaにアクセスする必要があるSpring XDモジュールを作成しました。モジュール内からSpring XDモジュールのメタデータを取得する方法

メタデータはZooKeeperModuleMetadataRepositoryで取得できますが、実行中のモジュールを一意に識別する方法はまだわかりません。サンプルモジュールを考える

:モジュールは独自のコンテキストを持っていることが強調されるplugin documentation

@MessageEndpoint 
public class DummyAugmenter { 

    @Transformer(inputChannel = "input", outputChannel = "output") 
    public Message<?> augmentMessage(Message<?> originalMessage) throws IOException { 
     // Get module metada 
     System.out.println("I am associated with stream " + 
           metadata.getUnitName() + 
           " and my instance number is " + 
           metadata.getId().getIndex()); 
     // Some logic 
     return newMsg; 
    } 
} 

は、しかし、そのコンテキストを取得する方法は不明である(可能ならば)、それが保持しているどのような情報。

任意の助けもいただければ幸いです!

答えて

1

モジュールのメタデータ情報は、プロパティーのソースから提供されています。

@Value("${xd.module.name}") 
    private String moduleName; 

    @Value("${xd.module.sequence}") 
    private String moduleIdx; 

    @Value("${xd.container.id}") 
    private String containerId; 

    @Value("${xd.stream.name}") 
    private String streamName; 

    // ... 
+0

正しく、モジュールのメタデータ自体はBeanとして登録されていません。それは環境を埋めるために使われます。したがって、@Value( "$ {prefix}")文字列接頭辞、 '、およびランタイムプロパティ' xd。* '/' –