/** * {@inheritDoc} */ @Override public void onApplicationEvent(AgentMessagesReceivedEvent event) { if (event == null) { if (log.isDebugEnabled()) { log.debug("A 'null' event will not be processed."); } return; } // When we update to Spring v4, we should use @Conditional that the RetransformationManager // is not running if retransformation is not used. if (!Agent.agent.isUsingRetransformation()) { if (log.isInfoEnabled()) { log.info("Retransformation is disabled by the used retransformation strategy."); } return; } List<InstrumentationDefinition> instrumentationDefinitions = getInstrumentatioDefinitions(event.getAgentMessages()); if (CollectionUtils.isEmpty(instrumentationDefinitions)) { return; } // remove out-dated duplicates Collection<InstrumentationDefinition> cleanedInstrumentationDefinitions = removeOutdatedInstrumentationDefinitions(instrumentationDefinitions); processInstrumentationDefinitions(cleanedInstrumentationDefinitions); }
@Test public void successful() { Object eventSource = mock(Object.class); IAgentMessage<?> message = mock(IAgentMessage.class); List<IAgentMessage<?>> messages = Arrays.<IAgentMessage<?>> asList(message); AgentMessagesReceivedEvent event = new AgentMessagesReceivedEvent(eventSource, messages); assertThat(eventSource, is(equalTo(event.getSource()))); assertThat(messages, is(equalTo(event.getAgentMessages()))); }
@Test public void successful() throws Exception { when(connection.isConnected()).thenReturn(true); when(platformManager.getPlatformId()).thenReturn(10L); List<IAgentMessage<?>> messages = Arrays.<IAgentMessage<?>> asList(mock(IAgentMessage.class)); when(connection.fetchAgentMessages(10L)).thenReturn(messages); messageFetcher.run(); verify(connection).isConnected(); verify(connection).fetchAgentMessages(10L); verify(platformManager).getPlatformId(); ArgumentCaptor<AgentMessagesReceivedEvent> eventCaptor = ArgumentCaptor.forClass(AgentMessagesReceivedEvent.class); verify(eventPublisher).publishEvent(eventCaptor.capture()); verifyNoMoreInteractions(connection, eventPublisher, platformManager); assertThat(eventCaptor.getValue().getAgentMessages(), is(equalTo(messages))); }