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; ...@@ -31,16 +31,9 @@ import java.util.stream.Stream;
*/ */
public class CTFApplication extends Application<ApplicationConfiguration> { public class CTFApplication extends Application<ApplicationConfiguration> {
private Morphia morphia;
private Datastore datastore; 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; private Injector injector;
//todo: move initalization to repositories
@Override @Override
public void initialize(final Bootstrap<ApplicationConfiguration> bootstrap) { public void initialize(final Bootstrap<ApplicationConfiguration> bootstrap) {
bootstrap.addBundle(new AssetsBundle("/assets", "/page", "index.html")); bootstrap.addBundle(new AssetsBundle("/assets", "/page", "index.html"));
...@@ -49,13 +42,6 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -49,13 +42,6 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
.forEach(bootstrap::addBundle); .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) { private void registerResources(Environment environment) {
JerseyEnvironment jersey = environment.jersey(); JerseyEnvironment jersey = environment.jersey();
jersey.register(injector.getInstance(TeamsResource.class)); jersey.register(injector.getInstance(TeamsResource.class));
...@@ -78,30 +64,30 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -78,30 +64,30 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
@Override @Override
public void run(ApplicationConfiguration applicationConfiguration, Environment environment) throws Exception { public void run(ApplicationConfiguration applicationConfiguration, Environment environment) throws Exception {
//todo: refactor injector = createInjector(applicationConfiguration);
initializeMorhpia();
injector = createInjector(applicationConfiguration, datastore);
registerResources(environment); registerResources(environment);
registerAuthFeatures(environment); registerAuthFeatures(environment);
} }
//todo: move to seperate class //todo: remove
public class ExampleAuthorizer implements Authorizer<User> { public class ExampleAuthorizer implements Authorizer<User> {
@Override @Override
public boolean authorize(User user, String role) { public boolean authorize(User user, String role) {
return user.getName().equals("good-guy") && role.equals("ADMIN"); 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() { return Guice.createInjector(new AbstractModule() {
@Override @Override
protected void configure() { protected void configure() {
bind(ApplicationConfiguration.class).toInstance(applicationConfiguration); //todo: refactor 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); 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