Commit cb20c8b9 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

temporary binding

parent 1239bc4e
...@@ -172,5 +172,10 @@ ...@@ -172,5 +172,10 @@
<artifactId>commons-io</artifactId> <artifactId>commons-io</artifactId>
<version>2.4</version> <version>2.4</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.5.RELEASE</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -5,6 +5,8 @@ import com.google.common.collect.ImmutableSet; ...@@ -5,6 +5,8 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.reflect.ClassPath; import com.google.common.reflect.ClassPath;
import com.google.inject.Guice; import com.google.inject.Guice;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
import com.telephoners.krakyournet.ctf.beans.User; import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.commands.PurgeDatabaseCommand; import com.telephoners.krakyournet.ctf.commands.PurgeDatabaseCommand;
import com.telephoners.krakyournet.ctf.commands.RegisterTasksCommand; import com.telephoners.krakyournet.ctf.commands.RegisterTasksCommand;
...@@ -12,6 +14,7 @@ import com.telephoners.krakyournet.ctf.commands.RegisterTeamsCommand; ...@@ -12,6 +14,7 @@ import com.telephoners.krakyournet.ctf.commands.RegisterTeamsCommand;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration; import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import com.telephoners.krakyournet.ctf.logging.LoggingFilter; import com.telephoners.krakyournet.ctf.logging.LoggingFilter;
import com.telephoners.krakyournet.ctf.modules.ApplicationModule; import com.telephoners.krakyournet.ctf.modules.ApplicationModule;
import com.telephoners.krakyournet.ctf.repositories.Repository;
import com.telephoners.krakyournet.ctf.repositories.SofaRepository; import com.telephoners.krakyournet.ctf.repositories.SofaRepository;
import io.dropwizard.Application; import io.dropwizard.Application;
import io.dropwizard.assets.AssetsBundle; import io.dropwizard.assets.AssetsBundle;
...@@ -83,6 +86,10 @@ public class CTFApplication extends Application<ApplicationConfiguration> ...@@ -83,6 +86,10 @@ public class CTFApplication extends Application<ApplicationConfiguration>
List<User> all = sofaRepository.getAll(); List<User> all = sofaRepository.getAll();
Repository<User> instance = injector.getInstance(Key.get(new TypeLiteral<Repository<User>>()
{
}));
registerAdmins(applicationConfiguration); registerAdmins(applicationConfiguration);
registerResources(environment); registerResources(environment);
registerAuthFeatures(environment); registerAuthFeatures(environment);
......
...@@ -2,16 +2,15 @@ package com.telephoners.krakyournet.ctf.modules; ...@@ -2,16 +2,15 @@ package com.telephoners.krakyournet.ctf.modules;
import com.google.inject.AbstractModule; import com.google.inject.AbstractModule;
import com.google.inject.Provides; import com.google.inject.Provides;
import com.google.inject.TypeLiteral;
import com.telephoners.krakyournet.ctf.beans.User; import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration; import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import com.telephoners.krakyournet.ctf.repositories.Repository;
import org.ektorp.CouchDbConnector; import org.ektorp.CouchDbConnector;
import org.ektorp.CouchDbInstance; import org.ektorp.CouchDbInstance;
import org.ektorp.http.HttpClient; import org.ektorp.http.HttpClient;
import org.ektorp.http.StdHttpClient; import org.ektorp.http.StdHttpClient;
import org.ektorp.impl.StdCouchDbConnector; import org.ektorp.impl.StdCouchDbConnector;
import org.ektorp.impl.StdCouchDbInstance; import org.ektorp.impl.StdCouchDbInstance;
import org.ektorp.support.CouchDbDocument;
import java.net.MalformedURLException; import java.net.MalformedURLException;
...@@ -29,12 +28,9 @@ public class ApplicationModule extends AbstractModule ...@@ -29,12 +28,9 @@ public class ApplicationModule extends AbstractModule
protected void configure() protected void configure()
{ {
bind(ApplicationConfiguration.class).toInstance(applicationConfiguration); bind(ApplicationConfiguration.class).toInstance(applicationConfiguration);
}
@Provides //todo: temporary
public Repository provideUserRepository(final CouchDbConnector connector) bind(new TypeLiteral<Class<User>>(){}).toInstance(User.class);
{
return createRepository(User.class, connector);
} }
@Provides @Provides
...@@ -66,8 +62,8 @@ public class ApplicationModule extends AbstractModule ...@@ -66,8 +62,8 @@ public class ApplicationModule extends AbstractModule
.build(); .build();
} }
private Repository createRepository(final Class<? extends CouchDbDocument> clazz, final CouchDbConnector connector) // private Repository createRepository(final Class<? extends CouchDbDocument> clazz, final CouchDbConnector connector)
{ // {
return new Repository<>(clazz, connector); // return new Repository<>(clazz, connector);
} // }
} }
package com.telephoners.krakyournet.ctf.repositories; package com.telephoners.krakyournet.ctf.repositories;
import com.google.inject.Inject;
import org.ektorp.CouchDbConnector; import org.ektorp.CouchDbConnector;
import org.ektorp.support.CouchDbDocument; import org.ektorp.support.CouchDbDocument;
import org.ektorp.support.CouchDbRepositorySupport; import org.ektorp.support.CouchDbRepositorySupport;
import javax.inject.Singleton;
@Singleton
public class Repository<T extends CouchDbDocument> extends CouchDbRepositorySupport<T> public class Repository<T extends CouchDbDocument> extends CouchDbRepositorySupport<T>
{ {
public Repository(final Class<T> type, final CouchDbConnector connector) @Inject
protected Repository(final Class<T> type, final CouchDbConnector connector)
{ {
super(type, connector); super(type, connector);
} }
......
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