Consolidated the modules.
Added a few missing bindings.
This commit is contained in:
parent
9f94868e47
commit
71a5ae8eb5
@ -1,35 +0,0 @@
|
||||
package com.hpcloud.mon;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.name.Names;
|
||||
import com.hpcloud.mon.MonApiConfiguration.CloudServiceConfiguration;
|
||||
import com.hpcloud.mon.domain.DomainModule;
|
||||
import com.hpcloud.mon.infrastructure.InfrastructureModule;
|
||||
import com.hpcloud.mon.infrastructure.identity.IdentityServiceConfiguration;
|
||||
|
||||
/**
|
||||
* Application specific bindings.
|
||||
*
|
||||
* @author Jonathan Halterman
|
||||
*/
|
||||
public class ApplicationModule extends AbstractModule {
|
||||
private final MonApiConfiguration config;
|
||||
|
||||
public ApplicationModule(MonApiConfiguration config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(MonApiConfiguration.class).toInstance(config);
|
||||
for (Entry<String, CloudServiceConfiguration> cloudServiceConf : config.cloudServices.entrySet())
|
||||
bind(CloudServiceConfiguration.class).annotatedWith(Names.named(cloudServiceConf.getKey()))
|
||||
.toInstance(cloudServiceConf.getValue());
|
||||
bind(IdentityServiceConfiguration.class).toInstance(config.identityService);
|
||||
|
||||
install(new DomainModule());
|
||||
install(new InfrastructureModule());
|
||||
}
|
||||
}
|
@ -56,7 +56,7 @@ public class MonApiApplication extends Application<MonApiConfiguration> {
|
||||
@Override
|
||||
public void run(MonApiConfiguration config, Environment environment) throws Exception {
|
||||
/** Wire services */
|
||||
Injector.registerModules(new PlatformModule(environment, config), new ApplicationModule(config));
|
||||
Injector.registerModules(new MonApiModule(environment, config));
|
||||
|
||||
/** Configure managed services */
|
||||
|
||||
|
@ -5,6 +5,7 @@ import io.dropwizard.db.DataSourceFactory;
|
||||
import io.dropwizard.jdbi.DBIFactory;
|
||||
import io.dropwizard.setup.Environment;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
@ -19,27 +20,41 @@ import com.google.common.base.Joiner;
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.Provides;
|
||||
import com.google.inject.ProvisionException;
|
||||
import com.google.inject.Scopes;
|
||||
import com.google.inject.name.Names;
|
||||
import com.hpcloud.mon.MonApiConfiguration.CloudServiceConfiguration;
|
||||
import com.hpcloud.mon.app.ApplicationModule;
|
||||
import com.hpcloud.mon.domain.DomainModule;
|
||||
import com.hpcloud.mon.infrastructure.InfrastructureModule;
|
||||
import com.hpcloud.mon.infrastructure.identity.IdentityServiceConfiguration;
|
||||
import com.sun.jersey.api.client.Client;
|
||||
|
||||
/**
|
||||
* Platform (non-application) specific bindings.
|
||||
* Monitoring API server bindings.
|
||||
*
|
||||
* @author Jonathan Halterman
|
||||
*/
|
||||
public class PlatformModule extends AbstractModule {
|
||||
public class MonApiModule extends AbstractModule {
|
||||
private final MonApiConfiguration config;
|
||||
private final Environment environment;
|
||||
|
||||
public PlatformModule(Environment environment, MonApiConfiguration config) {
|
||||
public MonApiModule(Environment environment, MonApiConfiguration config) {
|
||||
this.environment = environment;
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(MetricRegistry.class).in(Scopes.SINGLETON);
|
||||
bind(MonApiConfiguration.class).toInstance(config);
|
||||
for (Entry<String, CloudServiceConfiguration> cloudServiceConf : config.cloudServices.entrySet())
|
||||
bind(CloudServiceConfiguration.class).annotatedWith(Names.named(cloudServiceConf.getKey()))
|
||||
.toInstance(cloudServiceConf.getValue());
|
||||
bind(IdentityServiceConfiguration.class).toInstance(config.identityService);
|
||||
bind(MetricRegistry.class).in(Singleton.class);
|
||||
bind(DataSourceFactory.class).toInstance(config.database);
|
||||
|
||||
install(new ApplicationModule());
|
||||
install(new DomainModule());
|
||||
install(new InfrastructureModule());
|
||||
}
|
||||
|
||||
@Provides
|
||||
@ -62,7 +77,7 @@ public class PlatformModule extends AbstractModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
public Producer<?, ?> getProducer() {
|
||||
public Producer<String, String> getProducer() {
|
||||
Properties props = new Properties();
|
||||
props.put("metadata.broker.list", Joiner.on(',').join(config.kafka.hosts));
|
||||
props.put("serializer.class", "kafka.serializer.StringEncoder");
|
18
src/main/java/com/hpcloud/mon/app/ApplicationModule.java
Normal file
18
src/main/java/com/hpcloud/mon/app/ApplicationModule.java
Normal file
@ -0,0 +1,18 @@
|
||||
package com.hpcloud.mon.app;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
|
||||
/**
|
||||
* Application layer bindings.
|
||||
*
|
||||
* @author Jonathan Halterman
|
||||
*/
|
||||
public class ApplicationModule extends AbstractModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(MetricService.class).in(Singleton.class);
|
||||
bind(AlarmService.class).in(Singleton.class);
|
||||
}
|
||||
}
|
@ -1,6 +1,12 @@
|
||||
package com.hpcloud.mon.domain;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.hpcloud.mon.app.AlarmService;
|
||||
import com.hpcloud.mon.app.MetricService;
|
||||
import com.hpcloud.mon.domain.model.version.VersionRepository;
|
||||
import com.hpcloud.mon.domain.service.impl.VersionRepositoryImpl;
|
||||
|
||||
/**
|
||||
* Domain layer bindings.
|
||||
@ -10,17 +16,8 @@ import com.google.inject.AbstractModule;
|
||||
public class DomainModule extends AbstractModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
// bind(SubscriptionService.class).to(SubscriptionServiceImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(EndpointService.class).to(EndpointServiceImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(AlarmService.class).to(AlarmServiceImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(VersionRepository.class).to(VersionRepositoryImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(MetricService.class).to(MetricServiceImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(MetricRepository.class).to(MetricRepositoryImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(AccessRepository.class).to(AccessRepositoryImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(MeteringService.class).to(MeteringServiceImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(MeteringRepository.class).to(MeteringRepositoryImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(WorkService.class).to(WorkServiceImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(ApiCallCountService.class).to(ApiCallCountServiceImpl.class).in(Scopes.SINGLETON);
|
||||
// bind(ApiCallCountRepository.class).to(ApiCallCountRepositoryImpl.class).in(Scopes.SINGLETON);
|
||||
bind(MetricService.class).in(Singleton.class);
|
||||
bind(AlarmService.class).in(Singleton.class);
|
||||
bind(VersionRepository.class).to(VersionRepositoryImpl.class).in(Singleton.class);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user