Winter M <win...@antithesis.com>: Jul 14 12:49PM -0700
Thanks, Luca.
> That won't work, because the owners plugin was still a mono-repo...
Does this mean that for 3.15, one will need to manually grab owners-api,
owners, and/or owners-autoassign from the plugin manager?
It looks like this doesn't quite work, unfortunately:
[2026-07-14T15:40:23.777-04:00] [main] INFO
com.google.gerrit.server.plugins.PluginLoader : Removing stale plugin file:
plugin_owners-autoassign_260714_1939_11203190176416256840.jar
[...]
[2026-07-14T15:40:23.950-04:00] [main] INFO
com.google.gerrit.server.plugins.PluginLoader : Loaded plugin owners-api,
version v3.0-303-g75e9eb0940 [2026-07-14T15:40:23.957-04:00] [main] INFO
com.google.gerrit.server.config.FileBasedGlobalPluginConfigProvider : No
/home/winter/gerrit/etc/owners-autoassign.config; assuming defaults
[2026-07-14T15:40:23.967-04:00] [main] WARN
com.google.gerrit.server.plugins.PluginLoader : Cannot load plugin
owners-autoassign com.google.inject.ProvisionException: Unable to
provision, see the following errors: 1) [Guice/ErrorInjectingConstructor]:
NoClassDefFoundError: com/googlesource/gerrit/owners/api/OwnersAttentionSet
at AutoassignModule.<init>(AutoassignModule.java:40) while locating
AutoassignModule Learn more:
https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR 1 error
====================== Full classname legend: ======================
AutoassignModule: "com.googlesource.gerrit.owners.common.AutoassignModule"
======================== End of classname legend: ========================
at
com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:251)
at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1151) at
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
at
com.google.gerrit.server.plugins.ServerPlugin.startPlugin(ServerPlugin.java:232)
at
com.google.gerrit.server.plugins.ServerPlugin.start(ServerPlugin.java:195)
at
com.google.gerrit.server.plugins.PluginLoader.runPlugin(PluginLoader.java:523)
at
com.google.gerrit.server.plugins.PluginLoader.rescan(PluginLoader.java:444)
at
com.google.gerrit.server.plugins.PluginLoader.start(PluginLoader.java:344)
at
com.google.gerrit.lifecycle.LifecycleManager.start(LifecycleManager.java:95)
at com.google.gerrit.pgm.Daemon.start(Daemon.java:433) at
com.google.gerrit.pgm.Daemon.run(Daemon.java:319) at
com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:62) at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565) at
com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:251)
at
com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:147)
at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:92)
at Main.main(Main.java:30) Caused by: java.lang.NoClassDefFoundError:
com/googlesource/gerrit/owners/api/OwnersAttentionSet at
java.base/java.lang.ClassLoader.defineClass1(Native Method) at
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) at
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:367) at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:557) at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) at
com.googlesource.gerrit.owners.common.AutoassignModule.<init>(AutoassignModule.java:40)
at
com.googlesource.gerrit.owners.common.AutoassignModule$$FastClassByGuice$$4c6cbc36.GUICE$TRAMPOLINE(<generated>)
at
com.googlesource.gerrit.owners.common.AutoassignModule$$FastClassByGuice$$4c6cbc36.apply(<generated>)
at
com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
at
com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114)
at
com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
at
com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
... 16 more Caused by: java.lang.ClassNotFoundException:
com.googlesource.gerrit.owners.api.OwnersAttentionSet at
java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:377) at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:557) at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) ... 31 more
Not quite sure what's going on here, these were all grabbed from the same
Jenkins job:
https://gerrit-ci.gerritforge.com/job/plugin-owners-bazel-stable-3.14/10/
Cheers,
On Monday, July 13, 2026 at 5:14:37 PM UTC-4 Luca Milanesio wrote:
|
|
|
Winter M <win...@antithesis.com>: Jul 14 12:54PM -0700
Ah, okay, `owners-api` is supposed to go in `lib/`. How is this handled in
the post-monorepo world, does the plugin manager handle this automatically?
Would a CL for better docs to this extent (as in, `owners-api` should go in
`lib/`) be appreciated?
On Tuesday, July 14, 2026 at 3:49:03 PM UTC-4 Winter M wrote:
|
|
|
Luca Milanesio <luca.mi...@gmail.com>: Jul 14 08:57PM +0100
> On 14 Jul 2026, at 20:54, 'Winter M' via Repo and Gerrit Discussion <repo-d...@googlegroups.com> wrote:
> Ah, okay, `owners-api` is supposed to go in `lib/`. How is this handled in the post-monorepo world, does the plugin manager handle this automatically? Would a CL for better docs to this extent (as in, `owners-api` should go in `lib/`) be appreciated?
You need to install the common api module [1] into the $GERRIT_SITE/lib, as you were doing with the API.
I agree that the documentation isn’t clear enough, feel free to send a change for improving it :-)
Luca.
[1] https://gerrit-ci.gerritforge.com/job/plugin-owners-common-api-bazel-master/lastSuccessfulBuild/artifact/bazel-bin/plugins/owners-common-api/owners-common-api.jar
|