gerrit プラグインを作成する場合、AutoRegistration を使用するか (@Listen
およびアノテーションを使用) 、またはを@Export
定義して手動登録を使用するかを選択できます。<GerritModule>
<Gerrit-SshModule>
<Gerrit-HttpModule>
pom.xml
自動登録はこのスライド セットに示されていますが、手動登録の使用方法に関するドキュメントはほとんどありません。それで、それはどのように行われますか?
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);
}
}