0

gerrit プラグインを作成する場合、AutoRegistration を使用するか (@Listenおよびアノテーションを使用) 、またはを@Export定義して手動登録を使用するかを選択できます。<GerritModule><Gerrit-SshModule><Gerrit-HttpModule>pom.xml

自動登録はこのスライド セットに示されていますが、手動登録の使用方法に関するドキュメントはほとんどありません。それで、それはどのように行われますか?

4

1 に答える 1

1

commit-message-length-validatorプラグインを手動登録に変換したいとしましょう。簡略化したバージョンは次のようになります。

@Listen
@Singleton
public class CommitMessageLengthValidation implements CommitValidationListener {
  public List<CommitValidationMessage> onCommitReceived(CommitReceivedEvent receiveEvent)
      throws CommitValidationException {
    // do something
  }
}

or buck ビルド スクリプトの<GerritModule>エントリはpom.xml、Guice モジュールを指す必要があるため、Guice モジュールを作成する必要があります。

class MyModule extends AbstractModule {
  @Override
  protected void configure() {
     // this does manual registration of CommitMessageLengthValidation
     DynamicSet.bind(binder(), CommitValidationListener.class)
         .to(CommitMessageLengthValidation.class);
  }
}

注釈の置き換えは、@Exportもう少し複雑です。SSH コマンドの場合、次を拡張して Guice モジュールを作成しますPluginCommandModule

class MySshModule extends PluginCommandModule {
  @Override
  protected void configureCommands() {
    command(PrintHelloWorldCommand.class);
    alias("say-hello", PrintHelloWorldCommand.class);
  }
}

HTTP サーブレットの場合、次を使用しますServletModule

public class Git2MksHttpModule extends ServletModule {
  @Override
  protected void configureServlets() {
    serve("/servertime").with(ServerTime.class);
  }
}
于 2013-09-04T09:35:37.110 に答える