test_class.declarator: storageFileHelper
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private StorageFileHelper storageFileHelper;
test_class.type: StorageFileHelper
test_class.var_name: storageFileHelper
test_class.declarator: storagePolicyProcessorJmsMessageListener
test_class.modifier: @Autowired
test_class.original_string: @Autowired
      StoragePolicyProcessorJmsMessageListener storagePolicyProcessorJmsMessageListener;
test_class.type: StoragePolicyProcessorJmsMessageListener
test_class.var_name: storagePolicyProcessorJmsMessageListener
test_class.file: herd-code/herd-service/src/test/java/org/finra/herd/service/helper/StoragePolicyProcessorJmsMessageListenerTest.java
test_class.identifier: StoragePolicyProcessorJmsMessageListenerTest
test_class.superclass: extends AbstractServiceTest
test_case.body: @Test
      public void testControlListener()
      {
          configurationHelper = Mockito.mock(ConfigurationHelper.class);
  
          ReflectionTestUtils.setField(storagePolicyProcessorJmsMessageListener, "configurationHelper", configurationHelper);
          MessageListenerContainer mockMessageListenerContainer = Mockito.mock(MessageListenerContainer.class);
  
          //The listener is not enabled
          when(configurationHelper.getProperty(ConfigurationValue.STORAGE_POLICY_PROCESSOR_JMS_LISTENER_ENABLED)).thenReturn("false");
          JmsListenerEndpointRegistry registry = ApplicationContextHolder.getApplicationContext()
              .getBean("org.springframework.jms.config.internalJmsListenerEndpointRegistry", JmsListenerEndpointRegistry.class);
          when(registry.getListenerContainer(HerdJmsDestinationResolver.SQS_DESTINATION_STORAGE_POLICY_SELECTOR_JOB_SQS_QUEUE))
              .thenReturn(mockMessageListenerContainer);
          //the listener is not running, nothing happened
          when(mockMessageListenerContainer.isRunning()).thenReturn(false);
          storagePolicyProcessorJmsMessageListener.controlStoragePolicyProcessorJmsMessageListener();
          verify(mockMessageListenerContainer, Mockito.times(0)).stop();
          verify(mockMessageListenerContainer, Mockito.times(0)).start();
          // the listener is running, but it is not enable, should stop
          when(mockMessageListenerContainer.isRunning()).thenReturn(true);
          storagePolicyProcessorJmsMessageListener.controlStoragePolicyProcessorJmsMessageListener();
          verify(mockMessageListenerContainer).stop();
  
          //The listener is enabled
          when(configurationHelper.getProperty(ConfigurationValue.STORAGE_POLICY_PROCESSOR_JMS_LISTENER_ENABLED)).thenReturn("true");
          //the listener is running, should not call the start method
          when(mockMessageListenerContainer.isRunning()).thenReturn(true);
          storagePolicyProcessorJmsMessageListener.controlStoragePolicyProcessorJmsMessageListener();
          verify(mockMessageListenerContainer, Mockito.times(0)).start();
          // the listener is not running, but it is enabled, should start
          when(mockMessageListenerContainer.isRunning()).thenReturn(false);
          storagePolicyProcessorJmsMessageListener.controlStoragePolicyProcessorJmsMessageListener();
          verify(mockMessageListenerContainer).start();
      }
test_case.class_method_signature: StoragePolicyProcessorJmsMessageListenerTest.testControlListener()
test_case.full_signature: @Test public void testControlListener()
test_case.identifier: testControlListener
test_case.invocations: mock setField mock thenReturn when getProperty getBean getApplicationContext thenReturn when getListenerContainer thenReturn when isRunning controlStoragePolicyProcessorJmsMessageListener stop verify times start verify times thenReturn when isRunning controlStoragePolicyProcessorJmsMessageListener stop verify thenReturn when getProperty thenReturn when isRunning controlStoragePolicyProcessorJmsMessageListener start verify times thenReturn when isRunning controlStoragePolicyProcessorJmsMessageListener start verify
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testControlListener()
focal_class.declarator: LOGGER = LoggerFactory.getLogger(StoragePolicyProcessorJmsMessageListener.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = LoggerFactory.getLogger(StoragePolicyProcessorJmsMessageListener.class);
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: configurationHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private ConfigurationHelper configurationHelper;
focal_class.type: ConfigurationHelper
focal_class.var_name: configurationHelper
focal_class.declarator: jsonHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private JsonHelper jsonHelper;
focal_class.type: JsonHelper
focal_class.var_name: jsonHelper
focal_class.declarator: storagePolicyProcessorService
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private StoragePolicyProcessorService storagePolicyProcessorService;
focal_class.type: StoragePolicyProcessorService
focal_class.var_name: storagePolicyProcessorService
focal_class.file: herd-code/herd-service/src/main/java/org/finra/herd/service/helper/StoragePolicyProcessorJmsMessageListener.java
focal_class.identifier: StoragePolicyProcessorJmsMessageListener
focal_class.class_method_signature: StoragePolicyProcessorJmsMessageListener.controlStoragePolicyProcessorJmsMessageListener()
focal_class.full_signature: @Scheduled(fixedDelay = 60000) public void controlStoragePolicyProcessorJmsMessageListener()
focal_class.identifier: controlStoragePolicyProcessorJmsMessageListener
focal_class.modifiers: @Scheduled(fixedDelay = 60000) public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void controlStoragePolicyProcessorJmsMessageListener()
focal_class.class_method_signature: StoragePolicyProcessorJmsMessageListener.processMessage(String payload, @Headers Map<Object, Object> allHeaders)
focal_class.full_signature: @JmsListener(id = HerdJmsDestinationResolver.SQS_DESTINATION_STORAGE_POLICY_SELECTOR_JOB_SQS_QUEUE, containerFactory = "storagePolicyProcessorJmsListenerContainerFactory", destination = HerdJmsDestinationResolver.SQS_DESTINATION_STORAGE_POLICY_SELECTOR_JOB_SQS_QUEUE) public void processMessage(String payload, @Headers Map<Object, Object> allHeaders)
focal_class.identifier: processMessage
focal_class.modifiers: @JmsListener(id = HerdJmsDestinationResolver.SQS_DESTINATION_STORAGE_POLICY_SELECTOR_JOB_SQS_QUEUE, containerFactory = "storagePolicyProcessorJmsListenerContainerFactory", destination = HerdJmsDestinationResolver.SQS_DESTINATION_STORAGE_POLICY_SELECTOR_JOB_SQS_QUEUE) public
focal_class.parameters: (String payload, @Headers Map<Object, Object> allHeaders)
focal_class.return: void
focal_class.signature: void processMessage(String payload, @Headers Map<Object, Object> allHeaders)
focal_method.body: @Scheduled(fixedDelay = 60000)
      public void controlStoragePolicyProcessorJmsMessageListener()
      {
          try
          {
              // Get the configuration setting.
              Boolean jmsMessageListenerEnabled =
                  Boolean.valueOf(configurationHelper.getProperty(ConfigurationValue.STORAGE_POLICY_PROCESSOR_JMS_LISTENER_ENABLED));
  
              // Get the registry bean.
              JmsListenerEndpointRegistry registry = ApplicationContextHolder.getApplicationContext()
                  .getBean("org.springframework.jms.config.internalJmsListenerEndpointRegistry", JmsListenerEndpointRegistry.class);
  
              // Get the storage policy processor JMS message listener container.
              MessageListenerContainer jmsMessageListenerContainer =
                  registry.getListenerContainer(HerdJmsDestinationResolver.SQS_DESTINATION_STORAGE_POLICY_SELECTOR_JOB_SQS_QUEUE);
  
              // Get the current JMS message listener status and the configuration value.
              LOGGER.debug("controlStoragePolicyProcessorJmsMessageListener(): {}={} jmsMessageListenerContainer.isRunning()={}",
                  ConfigurationValue.STORAGE_POLICY_PROCESSOR_JMS_LISTENER_ENABLED.getKey(), jmsMessageListenerEnabled, jmsMessageListenerContainer.isRunning());
  
              // Apply the relative action if needed.
              if (!jmsMessageListenerEnabled && jmsMessageListenerContainer.isRunning())
              {
                  LOGGER.info("controlStoragePolicyProcessorJmsMessageListener(): Stopping the storage policy processor JMS message listener ...");
                  jmsMessageListenerContainer.stop();
                  LOGGER.info("controlStoragePolicyProcessorJmsMessageListener(): Done");
              }
              else if (jmsMessageListenerEnabled && !jmsMessageListenerContainer.isRunning())
              {
                  LOGGER.info("controlStoragePolicyProcessorJmsMessageListener(): Starting the storage policy processor JMS message listener ...");
                  jmsMessageListenerContainer.start();
                  LOGGER.info("controlStoragePolicyProcessorJmsMessageListener(): Done");
              }
          }
          catch (Exception e)
          {
              LOGGER.error("controlStoragePolicyProcessorJmsMessageListener(): Failed to control the storage policy processor Jms message listener service.", e);
          }
      }
focal_method.class_method_signature: StoragePolicyProcessorJmsMessageListener.controlStoragePolicyProcessorJmsMessageListener()
focal_method.full_signature: @Scheduled(fixedDelay = 60000) public void controlStoragePolicyProcessorJmsMessageListener()
focal_method.identifier: controlStoragePolicyProcessorJmsMessageListener
focal_method.invocations: valueOf getProperty getBean getApplicationContext getListenerContainer debug getKey isRunning isRunning info stop info isRunning info start info error
focal_method.modifiers: @Scheduled(fixedDelay = 60000) public
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void controlStoragePolicyProcessorJmsMessageListener()