package nl.topicus.konijn.config.modules;
import nl.topicus.konijn.WicketApplication;
import nl.topicus.konijn.data.dao.hibernate.EventDao;
import nl.topicus.konijn.data.dao.hibernate.EventSettingDao;
import nl.topicus.konijn.data.dao.hibernate.NabaztagDao;
import nl.topicus.konijn.data.dao.hibernate.UserDao;
import nl.topicus.konijn.data.dao.interfaces.IEventDao;
import nl.topicus.konijn.data.dao.interfaces.IEventSettingDao;
import nl.topicus.konijn.data.dao.interfaces.INabaztagDao;
import nl.topicus.konijn.data.dao.interfaces.IUserDao;
import nl.topicus.konijn.data.entity.Event;
import nl.topicus.konijn.data.entity.Nabaztag;
import nl.topicus.konijn.data.entity.User;
import nl.topicus.konijn.xmpp.XMPPServerFactory;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.protocol.http.WicketFilter;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import com.google.inject.persist.PersistFilter;
import com.google.inject.persist.jpa.JpaPersistModule;
import com.google.inject.servlet.ServletModule;
/**
* Guice Module
*
* @author Joost Limburg
*
*/
public class Module extends ServletModule {
private static final String APP_MAPPING_PATTERN = "/*";
/*
* (non-Javadoc)
*
* @see com.google.inject.AbstractModule#configure()
*/
@Override
protected void configureServlets() {
install(new JpaPersistModule("myappdb"));
bind(WicketFilter.class).toInstance(new WicketFilter());
bind(WebApplication.class).to(WicketApplication.class);
filter(APP_MAPPING_PATTERN).through(PersistFilter.class);
bind(XMPPServerFactory.class);
// //hibernate stuff
AnnotationConfiguration annotationConfiguration = new AnnotationConfiguration();
annotationConfiguration.configure();
annotationConfiguration.addAnnotatedClass(Event.class);
annotationConfiguration.addAnnotatedClass(User.class);
annotationConfiguration.addAnnotatedClass(Nabaztag.class);
// bind(IBaseDao.class).to(BaseDao.class);
bind(IUserDao.class).to(UserDao.class);
bind(INabaztagDao.class).to(NabaztagDao.class);
bind(IEventDao.class).to(EventDao.class);
bind(IEventSettingDao.class).to(EventSettingDao.class);
bind(Configuration.class).toInstance(annotationConfiguration);
}
protected boolean initData() {
return true;
}
}