Merge branch 'stable-3.9' into stable-3.10
* stable-3.9:
Fix reloading of plugins registering dynamic items
Update Material Icons
Manage attach of ApiModule binding upon plugin reload
Update git submodules
Fix code comment position with Firefox
Release-Notes: skip
Change-Id: Ifc2176d84004af88777b5b0644efafbc8dff6ad9
diff --git a/java/com/google/gerrit/server/plugins/Plugin.java b/java/com/google/gerrit/server/plugins/Plugin.java
index b5ff041..3de7e27 100644
--- a/java/com/google/gerrit/server/plugins/Plugin.java
+++ b/java/com/google/gerrit/server/plugins/Plugin.java
@@ -78,7 +78,7 @@
protected LifecycleManager manager;
- private List<ReloadableRegistrationHandle<?>> reloadableHandles;
+ protected List<ReloadableRegistrationHandle<?>> reloadableHandles;
public Plugin(
String name, Path srcPath, PluginUser pluginUser, FileSnapshot snapshot, ApiType apiType) {
diff --git a/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java b/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java
index 7ecb6c6..10e5b59 100644
--- a/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java
+++ b/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java
@@ -363,6 +363,23 @@
reattachItem(old, sysItems, newPlugin.getSysInjector(), newPlugin);
reattachItem(old, sshItems, newPlugin.getSshInjector(), newPlugin);
reattachItem(old, httpItems, newPlugin.getHttpInjector(), newPlugin);
+
+ apiInjector = Optional.ofNullable(newPlugin.getApiInjector()).orElse(apiInjector);
+
+ if (apiInjector != null) {
+ apiItems.putAll(dynamicItemsOf(apiInjector));
+ apiSets.putAll(dynamicSetsOf(apiInjector));
+ apiMaps.putAll(dynamicMapsOf(apiInjector));
+
+ ImmutableList<Injector> allPluginInjectors =
+ listOfInjectors(
+ newPlugin.getSysInjector(),
+ newPlugin.getSshInjector(),
+ newPlugin.getHttpInjector());
+ allPluginInjectors.forEach(i -> reattachItem(old, apiItems, i, newPlugin));
+ allPluginInjectors.forEach(i -> reattachSet(old, apiSets, i, newPlugin));
+ allPluginInjectors.forEach(i -> reattachMap(old, apiMaps, i, newPlugin));
+ }
} finally {
exit(oldContext);
}
diff --git a/java/com/google/gerrit/server/plugins/ServerPlugin.java b/java/com/google/gerrit/server/plugins/ServerPlugin.java
index ba293ad..c7d62d1 100644
--- a/java/com/google/gerrit/server/plugins/ServerPlugin.java
+++ b/java/com/google/gerrit/server/plugins/ServerPlugin.java
@@ -58,7 +58,6 @@
private Injector sshInjector;
private Injector httpInjector;
private LifecycleManager serverManager;
- private List<ReloadableRegistrationHandle<?>> reloadableHandles;
private Optional<Module> apiModule = Optional.empty();
diff --git a/lib/fonts/material-icons.woff2 b/lib/fonts/material-icons.woff2
index 11074da..4fd4a47 100644
--- a/lib/fonts/material-icons.woff2
+++ b/lib/fonts/material-icons.woff2
Binary files differ
diff --git a/polygerrit-ui/app/styles/material-icons.css b/polygerrit-ui/app/styles/material-icons.css
index 4c0313c..0cce879 100644
--- a/polygerrit-ui/app/styles/material-icons.css
+++ b/polygerrit-ui/app/styles/material-icons.css
@@ -1,8 +1,8 @@
/**
- * This file has been produced by downloading this file on Sep 6, 2022:
+ * This file has been produced by downloading this file on June 11, 2024:
* https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0..1,0
- * The corresponding ttf file was downloaded on Sep 6, 2022 from:
- * https://fonts.gstatic.com/s/materialsymbolsoutlined/v51/kJF4BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzBwG-RpA6RzaxHMPdY40KH8nGzv3fzfVJU22ZZLsYEpzC_1ver5Y0J1Llf.woff2
+ * The corresponding ttf file was downloaded on June 11, 2024 from:
+ * https://fonts.gstatic.com/s/materialsymbolsoutlined/v192/kJF4BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzBwG-RpA6RzaxHMPdY40KH8nGzv3fzfVJU22ZZLsYEpzC_1ver5Y0.woff2
*/
@font-face {
font-family: 'Material Symbols Outlined';