-
Notifications
You must be signed in to change notification settings - Fork 3
/
DatabaseModule.java
36 lines (32 loc) · 1.21 KB
/
DatabaseModule.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.mgu.photoalbum.config;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.mgu.photoalbum.config.DatabaseConfig;
import com.mgu.photoalbum.config.ServiceConfig;
import org.ektorp.CouchDbConnector;
import org.ektorp.CouchDbInstance;
import org.ektorp.http.HttpClient;
import org.ektorp.http.StdHttpClient;
import org.ektorp.impl.StdCouchDbConnector;
import org.ektorp.impl.StdCouchDbInstance;
public class DatabaseModule extends AbstractModule {
@Provides
public CouchDbConnector provideConnection(final ServiceConfig config) {
final DatabaseConfig database = config.getDatabaseConfig();
try {
final HttpClient httpClient = new StdHttpClient.Builder()
.url(database.getUrl())
.connectionTimeout(1000)
.socketTimeout(1000)
.build();
final CouchDbInstance dbInstance = new StdCouchDbInstance(httpClient);
return new StdCouchDbConnector(database.getName(), dbInstance);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
protected void configure() {
// TODO: Wire repositories!
}
}