Adapt injection of UrlFormatter to DynamicItem Since I375245647 the UrlFormatter is not bound anymore directly but through a DynamicItem. Bug: Issue 10132 Change-Id: I621573b5246d1d2fcbc6ef03d3d1819c1525625e
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java index aefd723..87d4291 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
@@ -21,6 +21,7 @@ import com.google.gerrit.extensions.common.AccountInfo; import com.google.gerrit.extensions.common.ApprovalInfo; import com.google.gerrit.extensions.common.ChangeInfo; +import com.google.gerrit.extensions.registration.DynamicItem; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Project; @@ -32,6 +33,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; class HookArgs { interface Factory { @@ -42,14 +44,14 @@ final HookMetrics metrics; final GitRepositoryManager gitManager; final SitePaths sitePaths; - final UrlFormatter urlFormatter; + final DynamicItem<UrlFormatter> urlFormatter; private final List<String> args; @Inject HookArgs( IdentifiedUser.GenericFactory identifiedUserFactory, - UrlFormatter urlFormatter, + DynamicItem<UrlFormatter> urlFormatter, HookMetrics metrics, GitRepositoryManager gitManager, SitePaths sitePaths) { @@ -98,9 +100,12 @@ public void addUrl(ChangeInfo change) { args.add("--change-url"); if (change != null) { + Optional<UrlFormatter> uf = Optional.ofNullable(urlFormatter.get()); args.add( - urlFormatter - .getChangeViewUrl(new Project.NameKey(change.project), new Change.Id(change._number)) + uf.flatMap( + f -> + f.getChangeViewUrl( + new Project.NameKey(change.project), new Change.Id(change._number))) .orElse("")); } else { args.add("");