package com.mongodb.hvdf; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.mongodb.MongoClientURI; import com.mongodb.hvdf.cli.ServerMonitoringSimulatorLoad; import com.mongodb.hvdf.resources.FeedResource; import com.yammer.dropwizard.Service; import com.yammer.dropwizard.config.Bootstrap; import com.yammer.dropwizard.config.Environment; public class HVDFService extends Service<HVDFConfiguration> { @JsonAutoDetect(fieldVisibility=Visibility.NONE, creatorVisibility=Visibility.NONE) abstract class IgnoreBasicDBObjMap {} public static void main(String[] args) throws Exception { new HVDFService().run(args); } @Override public void initialize(Bootstrap<HVDFConfiguration> configBootstrap) { configBootstrap.setName("hvdf"); configBootstrap.addCommand( new ServerMonitoringSimulatorLoad() ); } @Override public void run(HVDFConfiguration config, Environment environment) throws Exception { // Get the configured default MongoDB URI MongoClientURI default_uri = config.mongodb.default_database_uri; // Initialize the services as per configuration ServiceManager services = new ServiceManager(config.services, default_uri); environment.manage(services); // Register the custom ExceptionMapper to handle ServiceExceptions environment.addProvider(new ServiceExceptionMapper()); environment.addResource( new FeedResource( services.getChannelService()) ); } }