All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alipay.sofa.tracer.plugins.mongodb.SofaTracerMongoClient Maven / Gradle / Ivy

There is a newer version: 4.0.1
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.alipay.sofa.tracer.plugins.mongodb;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoClientURI;
import com.mongodb.MongoCredential;
import com.mongodb.MongoDriverInformation;
import com.mongodb.ServerAddress;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author: guolei.sgl ([email protected]) 2019/12/6 11:16 AM
 * @since:
 **/
public class SofaTracerMongoClient extends MongoClient {

    public SofaTracerMongoClient(SofaTracerCommandListener listener) {
        this(listener, new ServerAddress());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final String host) {
        this(listener, new ServerAddress(host));
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final String host,
                                 final MongoClientOptions options) {
        this(listener, new ServerAddress(host), options);
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final String host,
                                 final int port) {
        this(listener, new ServerAddress(host, port));
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final ServerAddress addr) {
        this(listener, addr, new MongoClientOptions.Builder().build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final ServerAddress addr,
                                 final List credentialsList) {
        this(listener, addr, credentialsList, new MongoClientOptions.Builder().build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final ServerAddress addr,
                                 final MongoClientOptions options) {
        super(addr, MongoClientOptions.builder(options).addCommandListener(listener).build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final ServerAddress addr,
                                 final List credentialsList,
                                 final MongoClientOptions options) {
        super(addr, credentialsList, MongoClientOptions.builder(options)
            .addCommandListener(listener).build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final ServerAddress addr,
                                 final MongoCredential credential, final MongoClientOptions options) {
        super(addr, credential, MongoClientOptions.builder(options).addCommandListener(listener)
            .build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final List seeds) {
        this(listener, seeds, new MongoClientOptions.Builder().build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener,
                                 final List seeds,
                                 final List credentialsList) {
        this(listener, seeds, credentialsList, new MongoClientOptions.Builder().build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener,
                                 final List seeds, final MongoClientOptions options) {
        super(seeds, MongoClientOptions.builder(options).addCommandListener(listener).build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener,
                                 final List seeds,
                                 final List credentialsList,
                                 final MongoClientOptions options) {
        super(seeds, credentialsList, MongoClientOptions.builder(options)
            .addCommandListener(listener).build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener,
                                 final List seeds, final MongoCredential credential,
                                 final MongoClientOptions options) {
        super(seeds, credential, MongoClientOptions.builder(options).addCommandListener(listener)
            .build());
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final MongoClientURI uri) {
        this(listener, uri, null);
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener,
                                 final List seeds, final MongoCredential credential,
                                 final MongoClientOptions options,
                                 final MongoDriverInformation mongoDriverInformation) {
        super(seeds, credential, MongoClientOptions.builder(options).addCommandListener(listener)
            .build(), mongoDriverInformation);
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final MongoClientURI uri,
                                 final MongoDriverInformation mongoDriverInformation) {
        this(listener, toServerAddressList(uri.getHosts()),
            uri.getCredentials() != null ? Collections.singletonList(uri.getCredentials())
                : Collections. emptyList(), uri.getOptions(),
            mongoDriverInformation);
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener, final ServerAddress addr,
                                 final List credentialsList,
                                 final MongoClientOptions options,
                                 final MongoDriverInformation mongoDriverInformation) {
        super(addr, credentialsList, MongoClientOptions.builder(options)
            .addCommandListener(listener).build(), mongoDriverInformation);
    }

    public SofaTracerMongoClient(SofaTracerCommandListener listener,
                                 final List seeds,
                                 final List credentialsList,
                                 final MongoClientOptions options,
                                 final MongoDriverInformation mongoDriverInformation) {
        super(seeds, credentialsList, MongoClientOptions.builder(options)
            .addCommandListener(listener).build(), mongoDriverInformation);
    }

    private static List toServerAddressList(List hosts) {
        List list = new ArrayList<>();
        for (String host : hosts) {
            list.add(new ServerAddress(host));
        }
        return list;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy