docs: @Override
      public void filter(ContainerRequestContext incomingRequestContext) throws IOException {
          String methodName = "filter(incoming)";
  
          Tracer tracer = OpentracingTracerManager.getTracer();
          if (tracer == null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, methodName + " no tracer");
              }
              return;
          } else {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, methodName, OpentracingUtils.getTracerText(tracer));
              }
          }
  
          URI incomingUri = incomingRequestContext.getUriInfo().getRequestUri();
          String incomingURL = incomingUri.toURL().toString();
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, methodName + " incomingURL", incomingURL);
          }
  
          SpanContext priorOutgoingContext = tracer.extract(Format.Builtin.HTTP_HEADERS,
                                                            new MultivaluedMapToTextMap(incomingRequestContext.getHeaders()));
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, methodName + " priorContext", priorOutgoingContext);
          }
  
          /*
           * Removing filter processing until microprofile spec for it is approved. Expect to add this code
           * back in 1Q18 - smf
           */
          // boolean process = OpentracingService.process(incomingUri, SpanFilterType.INCOMING);
          boolean process = true;
  
          String buildSpanName;
          if (helper != null) {
              buildSpanName = helper.getBuildSpanName(incomingRequestContext, resourceInfo);
              if (buildSpanName == null) {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, methodName + " skipping not traced method");
                  }
                  process = false;
              }
          } else {
              buildSpanName = incomingURL;
          }
  
          if (process) {
              Tracer.SpanBuilder spanBuilder = tracer.buildSpan(buildSpanName);
              spanBuilder.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_SERVER);
              spanBuilder.withTag(Tags.HTTP_URL.getKey(), incomingURL);
              spanBuilder.withTag(Tags.HTTP_METHOD.getKey(), incomingRequestContext.getMethod());
              spanBuilder.withTag(Tags.COMPONENT.getKey(), TAG_COMPONENT_JAXRS);
              if (priorOutgoingContext != null) {
                  spanBuilder.asChildOf(priorOutgoingContext);
              }
  
              Scope scope = spanBuilder.startActive(true);
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, methodName + " span", scope.span());
              }
  
              incomingRequestContext.setProperty(SERVER_SPAN_PROP_ID, scope);
          }
  
          incomingRequestContext.setProperty(SERVER_SPAN_SKIPPED_ID, !process);
      }