test_class.declarator: testOutputDirectory
test_class.modifier: private static
test_class.original_string: private static String testOutputDirectory;
test_class.type: String
test_class.var_name: testOutputDirectory
test_class.file: nvadaemon/src/test/java/com/microsoft/azure/practices/nvadaemon/NvaDaemonTest.java
test_class.identifier: NvaDaemonTest
test_case.body: @Test
      void test_non_existent_config_file_specified() {
          NvaDaemon nvaDaemon = new NvaDaemon();
          DaemonContext daemonContext = new DaemonContext() {
              @Override
              public DaemonController getController() {
                  return null;
              }
  
              @Override
              public String[] getArguments() {
                  return new String[] { "-c", testOutputDirectory + "/does-not-exist.json" };
              }
          };
  
          try {
              nvaDaemon.init(daemonContext);
          } catch (DaemonInitException e) {
              // The DaemonInitException is coded incorrectly, so we have to check for our
              // error message.
              Assertions.assertTrue(e.getMessageWithCause().contains(
                  "Error reading configuration file"));
          }
      }
test_case.class_method_signature: NvaDaemonTest.test_non_existent_config_file_specified()
test_case.full_signature: @Test void test_non_existent_config_file_specified()
test_case.identifier: test_non_existent_config_file_specified
test_case.invocations: init assertTrue contains getMessageWithCause
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void test_non_existent_config_file_specified()
focal_class.declarator: log = LoggerFactory.getLogger(NvaDaemon.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory.getLogger(NvaDaemon.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: ZK_NAMESPACE = "nvadaemon"
focal_class.modifier: private static final
focal_class.original_string: private static final String ZK_NAMESPACE = "nvadaemon";
focal_class.type: String
focal_class.var_name: ZK_NAMESPACE
focal_class.declarator: stopped
focal_class.modifier: private volatile
focal_class.original_string: private volatile boolean stopped;
focal_class.type: boolean
focal_class.var_name: stopped
focal_class.declarator: configuration
focal_class.modifier: private
focal_class.original_string: private NvaDaemonConfiguration configuration;
focal_class.type: NvaDaemonConfiguration
focal_class.var_name: configuration
focal_class.declarator: client
focal_class.modifier: private
focal_class.original_string: private CuratorFramework client;
focal_class.type: CuratorFramework
focal_class.var_name: client
focal_class.declarator: lock = new ReentrantLock()
focal_class.modifier: private
focal_class.original_string: private ReentrantLock lock = new ReentrantLock();
focal_class.type: ReentrantLock
focal_class.var_name: lock
focal_class.declarator: shutdown = lock.newCondition()
focal_class.modifier: private
focal_class.original_string: private Condition shutdown = lock.newCondition();
focal_class.type: Condition
focal_class.var_name: shutdown
focal_class.declarator: executorService = Executors.newSingleThreadExecutor()
focal_class.modifier: private final
focal_class.original_string: private final ExecutorService executorService = Executors.newSingleThreadExecutor();
focal_class.type: ExecutorService
focal_class.var_name: executorService
focal_class.declarator: ourTask = new AtomicReference<>(null)
focal_class.modifier: private final
focal_class.original_string: private final AtomicReference<Future<?>> ourTask = new AtomicReference<>(null);
focal_class.type: AtomicReference<Future<?>>
focal_class.var_name: ourTask
focal_class.file: nvadaemon/src/main/java/com/microsoft/azure/practices/nvadaemon/NvaDaemon.java
focal_class.identifier: NvaDaemon
focal_class.interfaces: implements Daemon
focal_class.class_method_signature: NvaDaemon.NvaDaemon()
focal_class.full_signature: public  NvaDaemon()
focal_class.identifier: NvaDaemon
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  NvaDaemon()
focal_class.class_method_signature: NvaDaemon.createClient()
focal_class.full_signature: private void createClient()
focal_class.identifier: createClient
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void createClient()
focal_class.class_method_signature: NvaDaemon.init(DaemonContext daemonContext)
focal_class.full_signature: @Override public void init(DaemonContext daemonContext)
focal_class.identifier: init
focal_class.modifiers: @Override public
focal_class.parameters: (DaemonContext daemonContext)
focal_class.return: void
focal_class.signature: void init(DaemonContext daemonContext)
focal_class.class_method_signature: NvaDaemon.start()
focal_class.full_signature: @Override public void start()
focal_class.identifier: start
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void start()
focal_class.class_method_signature: NvaDaemon.internalStart()
focal_class.full_signature: private synchronized void internalStart()
focal_class.identifier: internalStart
focal_class.modifiers: private synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void internalStart()
focal_class.class_method_signature: NvaDaemon.stop()
focal_class.full_signature: @Override public synchronized void stop()
focal_class.identifier: stop
focal_class.modifiers: @Override public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void stop()
focal_class.class_method_signature: NvaDaemon.destroy()
focal_class.full_signature: @Override public void destroy()
focal_class.identifier: destroy
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void destroy()
focal_class.class_method_signature: NvaDaemon.parseArguments(String[] args)
focal_class.full_signature: private static NvaDaemonConfiguration parseArguments(String[] args)
focal_class.identifier: parseArguments
focal_class.modifiers: private static
focal_class.parameters: (String[] args)
focal_class.return: NvaDaemonConfiguration
focal_class.signature: NvaDaemonConfiguration parseArguments(String[] args)
focal_class.class_method_signature: NvaDaemon.parseCommandLine(String[] args)
focal_class.full_signature: private static CommandLine parseCommandLine(String[] args)
focal_class.identifier: parseCommandLine
focal_class.modifiers: private static
focal_class.parameters: (String[] args)
focal_class.return: CommandLine
focal_class.signature: CommandLine parseCommandLine(String[] args)
focal_method.body: @Override
      public void init(DaemonContext daemonContext) throws DaemonInitException {
          Preconditions.checkNotNull(daemonContext, "daemonContext cannot be null");
          try {
              this.configuration = parseArguments(daemonContext.getArguments());
          } catch (ConfigurationException e) {
              throw new DaemonInitException("Error processing command line arguments", e);
          }
      }
focal_method.class_method_signature: NvaDaemon.init(DaemonContext daemonContext)
focal_method.full_signature: @Override public void init(DaemonContext daemonContext)
focal_method.identifier: init
focal_method.invocations: checkNotNull parseArguments getArguments
focal_method.modifiers: @Override public
focal_method.parameters: (DaemonContext daemonContext)
focal_method.return: void
focal_method.signature: void init(DaemonContext daemonContext)