/** * {@inheritDoc} */ @Override public void beforeBody(long methodId, long sensorTypeId, Object object, Object[] parameters, RegisteredSensorConfig rsc) { if (!REF_MARKER.isMarkerSet()) { // get requestAdapter and handle ServerRequestAdapter<?> adapter = serverAdapterProvider.getServerRequestAdapter(object, parameters, rsc); SpanImpl span = serverInterceptor.handleRequest(adapter); if (null != span) { spanStack.set(span); if (LOG.isDebugEnabled()) { LOG.debug("Remote server hook before body span " + span); } } } REF_MARKER.markCall(); }
@Test public void spanNull() throws Exception { // ids long platformId = 1l; long methodId = 7l; long sensorId = 13l; // platform when(platformManager.getPlatformId()).thenReturn(platformId); // interceptor Object[] parameters = new String[] { "blah", "bla" }; doReturn(requestAdapter).when(adapterProvider).getServerRequestAdapter(object, parameters, rsc); doReturn(responseAdapter).when(adapterProvider).getServerResponseAdapter(object, parameters, result, false, rsc); when(serverInterceptor.handleRequest(requestAdapter)).thenReturn(null); // execute calls hook.beforeBody(methodId, sensorId, object, parameters, rsc); hook.firstAfterBody(methodId, sensorId, object, parameters, result, false, rsc); hook.secondAfterBody(coreService, methodId, sensorId, object, parameters, result, false, rsc); // verify timer, interceptor and adapters verify(serverInterceptor).handleRequest(requestAdapter); verify(adapterProvider).getServerRequestAdapter(object, parameters, rsc); verifyNoMoreInteractions(adapterProvider, serverInterceptor, coreService); verifyZeroInteractions(coreService); }
/** * {@inheritDoc} */ @Override public void secondAfterBody(ICoreService coreService, long methodId, long sensorTypeId, Object object, Object[] parameters, Object result, boolean exception, RegisteredSensorConfig rsc) {// NOCHK:8-params // check if in the right(first) invocation if (REF_MARKER.isMarkerSet() && REF_MARKER.matchesFirst()) { // call ended, remove the marker. REF_MARKER.remove(); // extract span from thread local SpanImpl span = spanStack.get(); spanStack.remove(); if (null != span) { // get requestAdapter and handle ResponseAdapter responseAdapter = serverAdapterProvider.getServerResponseAdapter(object, parameters, result, exception, rsc); serverInterceptor.handleResponse(span, responseAdapter); if (LOG.isDebugEnabled()) { LOG.debug("Remote server hook after body span " + span); } AbstractSpan transformedSpan = SpanTransformer.transformSpan(span); transformedSpan.setPlatformIdent(platformManager.getPlatformId()); transformedSpan.setMethodIdent(methodId); transformedSpan.setSensorTypeIdent(sensorTypeId); // add to core service (use span id as prefix) coreService.addDefaultData(transformedSpan); } } }
doReturn(requestAdapter).when(adapterProvider).getServerRequestAdapter(object, parameters, rsc); doReturn(responseAdapter).when(adapterProvider).getServerResponseAdapter(object, parameters, result, exception, rsc); verify(adapterProvider).getServerRequestAdapter(object, parameters, rsc); verify(adapterProvider).getServerResponseAdapter(object, parameters, result, exception, rsc); verifyNoMoreInteractions(adapterProvider, serverInterceptor, coreService);
doReturn(requestAdapter).when(adapterProvider).getServerRequestAdapter(object, parameters, rsc); doReturn(responseAdapter).when(adapterProvider).getServerResponseAdapter(object, parameters, result, false, rsc); verify(adapterProvider).getServerRequestAdapter(object, parameters, rsc); verify(adapterProvider).getServerResponseAdapter(object, parameters, result, false, rsc); verifyNoMoreInteractions(adapterProvider, serverInterceptor, coreService);