From 947a80fde1e3b531a8061e0af382a9e28dadf69e Mon Sep 17 00:00:00 2001 From: David Ostrovsky Date: Wed, 6 Nov 2013 22:13:11 +0100 Subject: [PATCH] Add daemon instance to Jython shell session Given that the Daemon instance contains all Guices injectors, all Guice bindings can be reached from the Daemon instance. Expose Daemon instance to the Jython shell session as "d" variable. For example to dump the global capabilities: >>> from com.google.gerrit.server.config import AllProjectsNameProvider >>> from com.google.gerrit.server.git.MetaDataUpdate import Server >>> from com.google.gerrit.server.git import ProjectConfig >>> i = d.sysInjector >>> allProjectsNameProvider = i.getInstance(AllProjectsNameProvider) >>> metaUpdateFactory = i.getInstance(Server) >>> md = metaUpdateFactory.create(allProjectsNameProvider.get()) >>> cfg = ProjectConfig.read(md) >>> s = cfg.getAccessSection("GLOBAL_CAPABILITIES", True) >>> for p in s.getPermissions(): >>> ... print p ... accessDatabase [group Administrators] administrateServer [group Administrators] [...] streamEvents [group Non-Interactive Users] >>> Change-Id: If5de7491e55002fff6078741deb43d1dc3ed855e --- Documentation/dev-inspector.txt | 5 +---- gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Documentation/dev-inspector.txt b/Documentation/dev-inspector.txt index 925f74c6c2..14177f801f 100644 --- a/Documentation/dev-inspector.txt +++ b/Documentation/dev-inspector.txt @@ -180,11 +180,8 @@ defined in the interpreter: "schk" is "com.google.gerrit.server.schema.SchemaVersionCheck@5e8cb9bd" "ds" is "com.google.gerrit.server.schema.DataSourceProvider@6b3592c" "m" is "com.google.gerrit.lifecycle.LifecycleManager@6f03b248" -"q" is "com.google.gerrit.reviewdb.server.ReviewDb_Schema_GwtOrm$$23@56d3384d" "Shell" is "com.google.gerrit.pgm.shell.JythonShell@61644f2d" -"x" is "com.google.gerrit.reviewdb.client.PatchLineComment@518acfa7" -"z" is "com.google.gwtorm.jdbc.Database@668dfd9b" -"db" is "com.google.gerrit.reviewdb.server.ReviewDb_Schema_GwtOrm$$23@6a3ccb09" +"d" is "com.google.gerrit.pgm.Daemon@28a3f689" Welcome to the Gerrit Inspector Enter help() to see the above again, EOF to quit and stop Gerrit diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java index 35d8e76d4a..f220c394ca 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java @@ -226,6 +226,7 @@ public class Daemon extends SiteProgram { shell.set("m", manager); shell.set("ds", dbInjector.getInstance(DataSourceProvider.class)); shell.set("schk", dbInjector.getInstance(SchemaVersionCheck.class)); + shell.set("d", this); shell.run(); } else { RuntimeShutdown.waitFor();