@Override
    public void before(Object target, Object[] args) {

        if (logger.isDebugEnabled()) {
            logger.beforeInterceptor(target, args);
        }

        Trace trace = traceContext.currentTraceObject();
        if (trace != null) {
            String endpoint = getDestination(args);
            String operation = getOperation(args);
            Object[] parameters = getParameters(operation, args);

            SpanEventRecorder recorder = trace.traceBlockBegin();
            TraceId nextId = trace.getTraceId().getNextTraceId();
            recorder.recordNextSpanId(nextId.getSpanId());
            recorder.recordServiceType(CxfPluginConstants.CXF_CLIENT_SERVICE_TYPE);
            recorder.recordDestinationId(endpoint);
            recorder.recordAttribute(CxfPluginConstants.CXF_OPERATION, operation);
            recorder.recordAttribute(CxfPluginConstants.CXF_ARGS, Arrays.toString(parameters));
        }
    }
@author barney
@author Victor.Zxy
@version 1.8.1
@since 2017/08/16
agent-module/plugins/cxf/src/main/java/com/navercorp/pinpoint/plugin/cxf/interceptor/CxfClientInvokeSyncMethodInterceptor.java