test_class.file: agent/embedded/src/test/java/org/glowroot/agent/embedded/ToolMainTest.java
test_class.identifier: ToolMainTest
test_case.body: @Test
      public void testWithGlowrootJar() throws Exception {
          File glowrootJar = new File("x/glowroot.jar").getAbsoluteFile();
          CodeSource codeSource = new CodeSource(glowrootJar.toURI().toURL(), new Certificate[0]);
          assertThat(ToolMain.getGlowrootJarFile(codeSource)).isEqualTo(glowrootJar);
      }
test_case.class_method_signature: ToolMainTest.testWithGlowrootJar()
test_case.full_signature: @Test public void testWithGlowrootJar()
test_case.identifier: testWithGlowrootJar
test_case.invocations: getAbsoluteFile toURL toURI isEqualTo assertThat getGlowrootJarFile
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testWithGlowrootJar()
focal_class.declarator: startupLogger
focal_class.modifier: private static volatile @MonotonicNonNull
focal_class.original_string: private static volatile @MonotonicNonNull Logger startupLogger;
focal_class.type: Logger
focal_class.var_name: startupLogger
focal_class.file: agent/embedded/src/main/java/org/glowroot/agent/embedded/ToolMain.java
focal_class.identifier: ToolMain
focal_class.class_method_signature: ToolMain.ToolMain()
focal_class.full_signature: private  ToolMain()
focal_class.identifier: ToolMain
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  ToolMain()
focal_class.class_method_signature: ToolMain.main(String[] args, Directories directories)
focal_class.full_signature: public static void main(String[] args, Directories directories)
focal_class.identifier: main
focal_class.modifiers: public static
focal_class.parameters: (String[] args, Directories directories)
focal_class.return: void
focal_class.signature: void main(String[] args, Directories directories)
focal_class.class_method_signature: ToolMain.getGlowrootJarFile(@Nullable CodeSource codeSource)
focal_class.full_signature: @VisibleForTesting static @Nullable File getGlowrootJarFile(@Nullable CodeSource codeSource)
focal_class.identifier: getGlowrootJarFile
focal_class.modifiers: @VisibleForTesting static @Nullable
focal_class.parameters: (@Nullable CodeSource codeSource)
focal_class.return: File
focal_class.signature: File getGlowrootJarFile(@Nullable CodeSource codeSource)
focal_class.class_method_signature: ToolMain.console(File dataDir)
focal_class.full_signature: private static void console(File dataDir)
focal_class.identifier: console
focal_class.modifiers: private static
focal_class.parameters: (File dataDir)
focal_class.return: void
focal_class.signature: void console(File dataDir)
focal_class.class_method_signature: ToolMain.shell(File dataDir)
focal_class.full_signature: private static void shell(File dataDir)
focal_class.identifier: shell
focal_class.modifiers: private static
focal_class.parameters: (File dataDir)
focal_class.return: void
focal_class.signature: void shell(File dataDir)
focal_class.class_method_signature: ToolMain.run(File dataDir, String sql)
focal_class.full_signature: private static void run(File dataDir, String sql)
focal_class.identifier: run
focal_class.modifiers: private static
focal_class.parameters: (File dataDir, String sql)
focal_class.return: void
focal_class.signature: void run(File dataDir, String sql)
focal_class.class_method_signature: ToolMain.recreate(File dataDir)
focal_class.full_signature: @RequiresNonNull("startupLogger") private static void recreate(File dataDir)
focal_class.identifier: recreate
focal_class.modifiers: @RequiresNonNull("startupLogger") private static
focal_class.parameters: (File dataDir)
focal_class.return: void
focal_class.signature: void recreate(File dataDir)
focal_class.class_method_signature: ToolMain.recover(File dataDir)
focal_class.full_signature: @RequiresNonNull("startupLogger") private static void recover(File dataDir)
focal_class.identifier: recover
focal_class.modifiers: @RequiresNonNull("startupLogger") private static
focal_class.parameters: (File dataDir)
focal_class.return: void
focal_class.signature: void recover(File dataDir)
focal_class.class_method_signature: ToolMain.maskCentralData(File dataDir)
focal_class.full_signature: @RequiresNonNull("startupLogger") private static void maskCentralData(File dataDir)
focal_class.identifier: maskCentralData
focal_class.modifiers: @RequiresNonNull("startupLogger") private static
focal_class.parameters: (File dataDir)
focal_class.return: void
focal_class.signature: void maskCentralData(File dataDir)
focal_class.class_method_signature: ToolMain.applyHash(String sql)
focal_class.full_signature: private static String applyHash(String sql)
focal_class.identifier: applyHash
focal_class.modifiers: private static
focal_class.parameters: (String sql)
focal_class.return: String
focal_class.signature: String applyHash(String sql)
focal_method.body: @VisibleForTesting
      static @Nullable File getGlowrootJarFile(@Nullable CodeSource codeSource)
              throws URISyntaxException {
          if (codeSource == null) {
              return null;
          }
          File codeSourceFile = new File(codeSource.getLocation().toURI());
          if (codeSourceFile.getName().endsWith(".jar")) {
              return codeSourceFile;
          }
          return null;
      }
focal_method.class_method_signature: ToolMain.getGlowrootJarFile(@Nullable CodeSource codeSource)
focal_method.full_signature: @VisibleForTesting static @Nullable File getGlowrootJarFile(@Nullable CodeSource codeSource)
focal_method.identifier: getGlowrootJarFile
focal_method.invocations: toURI getLocation endsWith getName
focal_method.modifiers: @VisibleForTesting static @Nullable
focal_method.parameters: (@Nullable CodeSource codeSource)
focal_method.return: File
focal_method.signature: File getGlowrootJarFile(@Nullable CodeSource codeSource)