public Listener generateListener()

in aws-xray-agent/src/main/java/com/amazonaws/xray/agent/runtime/listeners/XRayListenerFactory.java [38:66]


    public Listener generateListener() {
        manifest = XRaySDKConfiguration.getInstance().getAwsServiceHandlerManifest();
        configVersion = XRaySDKConfiguration.getInstance().getAwsSdkVersion();

        EventDispatcher upstreamEventDispatcher = new EventDispatcher();

        if (XRaySDKConfiguration.getInstance().isTraceIncomingRequests()) {
            upstreamEventDispatcher.addHandler(HTTP_SERVLET_ORIGIN, new ServletHandler());
        }

        EventDispatcher downstreamEventDispatcher = new EventDispatcher();
        downstreamEventDispatcher.addHandler(APACHE_HTTP_CLIENT_ORIGIN, new HttpClientHandler());
        downstreamEventDispatcher.addHandler(SQL_ORIGIN, new SqlHandler());
        downstreamEventDispatcher.addHandler(SQL_PREPARE_ORIGIN, new SqlPrepareHandler());

        if (configVersion == 1 && manifest != null) {
            downstreamEventDispatcher.addHandler(AWS_ORIGIN, new AWSHandler(manifest));
        } else {
            downstreamEventDispatcher.addHandler(AWS_ORIGIN, new AWSHandler());
        }

        if (configVersion == 2 && manifest != null) {
            downstreamEventDispatcher.addHandler(AWS_V2_ORIGIN, new AWSV2Handler(manifest));
        } else {
            downstreamEventDispatcher.addHandler(AWS_V2_ORIGIN, new AWSV2Handler());
        }

        return new XRayListener(upstreamEventDispatcher, downstreamEventDispatcher);
    }