Commit 2f67d389 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

refactor injections cont'd

parent 5a3315ab
......@@ -31,16 +31,9 @@ import java.util.stream.Stream;
*/
public class CTFApplication extends Application<ApplicationConfiguration> {
private Morphia morphia;
private Datastore datastore;
private UsersRepository usersRepository; //todo: refactor to injects
private TasksRepository tasksRepository; //todo: refactor to injects
private TeamsRepository teamsRepository;
private SolutionsRepository solutionsRepository;
private Injector injector;
//todo: move initalization to repositories
@Override
public void initialize(final Bootstrap<ApplicationConfiguration> bootstrap) {
bootstrap.addBundle(new AssetsBundle("/assets", "/page", "index.html"));
......@@ -49,13 +42,6 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
.forEach(bootstrap::addBundle);
}
private void initializeMorhpia() {
morphia = new Morphia();
morphia.mapPackage("objects.Team");
datastore = morphia.createDatastore(new MongoClient(), "db"); //todo: db name from conf
datastore.ensureIndexes();
}
private void registerResources(Environment environment) {
JerseyEnvironment jersey = environment.jersey();
jersey.register(injector.getInstance(TeamsResource.class));
......@@ -78,30 +64,30 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
@Override
public void run(ApplicationConfiguration applicationConfiguration, Environment environment) throws Exception {
//todo: refactor
initializeMorhpia();
injector = createInjector(applicationConfiguration, datastore);
injector = createInjector(applicationConfiguration);
registerResources(environment);
registerAuthFeatures(environment);
}
//todo: move to seperate class
//todo: remove
public class ExampleAuthorizer implements Authorizer<User> {
@Override
public boolean authorize(User user, String role) {
return user.getName().equals("good-guy") && role.equals("ADMIN");
}
}
private Injector createInjector(ApplicationConfiguration applicationConfiguration, Datastore datastore) {
private Injector createInjector(ApplicationConfiguration applicationConfiguration) {
return Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(ApplicationConfiguration.class).toInstance(applicationConfiguration); //todo: refactor
Morphia morphia = new Morphia();
morphia.mapPackage("objects.Team");
datastore = morphia.createDatastore(new MongoClient(), "db"); //todo: db name from conf
datastore.ensureIndexes();
bind(Datastore.class).toInstance(datastore);
}
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment