code: @Advice.OnMethodEnter
  	private static void addHandlers(@Advice.Argument(value = 0, readOnly = false) List<Handler> handlerChain, @Advice.This Binding binding) {
  		final java.util.logging.Logger logger = java.util.logging.Logger.getLogger("org.stagemonitor.tracing.soap.SoapHandlerTransformer");
  		final List<Handler<?>> stagemonitorHandlers = Dispatcher.get("org.stagemonitor.tracing.soap.SoapHandlerTransformer");
  
  		if (stagemonitorHandlers != null) {
  			logger.fine("Adding SOAPHandlers " + stagemonitorHandlers + " to handlerChain for Binding " + binding);
  			if (handlerChain == null) {
  				handlerChain = Collections.emptyList();
  			}
  			// creating a new list as we don't know if handlerChain is immutable or not
  			handlerChain = new ArrayList<Handler>(handlerChain);
  			for (Handler<?> stagemonitorHandler : stagemonitorHandlers) {
  				if (!handlerChain.contains(stagemonitorHandler) &&
  						// makes sure we only add the handler to the correct application
  						Dispatcher.isVisibleToCurrentContextClassLoader(stagemonitorHandler)) {
  					handlerChain.add(stagemonitorHandler);
  				}
  			}
  			logger.fine("Handler Chain: " + handlerChain);
  		} else {
  			logger.fine("No SOAPHandlers found in Dispatcher for Binding " + binding);
  		}
  	}
docs: This code might be executed in the context of the bootstrap class loader. That's why we have to make sure we only
  call code which is visible. For example, we can't use slf4j or directly reference stagemonitor classes