Package restx.mongo

Source Code of restx.mongo.MongoModule

package restx.mongo;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import restx.common.metrics.api.health.HealthCheckRegistry;
import restx.factory.AutoStartable;
import restx.factory.Module;
import restx.factory.Provides;

import javax.inject.Named;
import java.net.UnknownHostException;

/**
* Module providing some sensible defaults for mongo client.
*
* Customize by overriding some or all of these components.
*
* Eg:
* -Dmongo.host=dharma.mongohq.com -Dmongo.port=10002 -Dmongo.user=rxinvoice -Dmongo.password=XXXXXXXXX
*/
@Module(priority = 1000)
public class MongoModule {
    public static final String MONGO_CLIENT_NAME = "mongoClient";
    public static final String MONGO_DB_NAME = "mongo.db";
    public static final String MONGO_URI = "mongo.uri";

    @Provides @Named(MONGO_CLIENT_NAME)
    public MongoClient mongoClient(MongoSettings settings) {
        try {
            return new MongoClient(new MongoClientURI(settings.uri()));
        } catch (UnknownHostException e) {
            throw new RuntimeException(e);
        }
    }

    @Provides
    public AutoStartable mongoHealthChecks(final HealthCheckRegistry registry, final MongoClient mongo) {
        return new AutoStartable() {
            @Override
            public void start() {
                registry.register("mongo", new MongoHealthCheck(mongo));
            }
        };
    }
}
TOP

Related Classes of restx.mongo.MongoModule

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.