/src/main/java/com/ingenieux/nullweblog/util/PersistenceModule.java

https://bitbucket.org/aldrinleal/nullweblog · Java · 57 lines · 45 code · 12 blank · 0 comment · 0 complexity · b3cda0d77185f23ac0ee8a3d6235911e MD5 · raw file

  1. package com.ingenieux.nullweblog.util;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import javax.cache.Cache;
  5. import javax.cache.CacheFactory;
  6. import javax.cache.CacheManager;
  7. import com.google.appengine.api.memcache.stdimpl.GCacheFactory;
  8. import com.google.appengine.api.users.UserService;
  9. import com.google.appengine.api.users.UserServiceFactory;
  10. import com.google.inject.Binder;
  11. import com.google.inject.Module;
  12. import com.googlecode.objectify.Objectify;
  13. import com.googlecode.objectify.ObjectifyService;
  14. import com.ingenieux.nullweblog.model.Post;
  15. import com.ingenieux.nullweblog.model.Usuario;
  16. import com.ingenieux.nullweblog.server.PostDao;
  17. import com.ingenieux.nullweblog.server.UsuarioDao;
  18. public class PersistenceModule implements Module {
  19. @Override
  20. public void configure(Binder binder) {
  21. configureCache(binder);
  22. configurePersistence(binder);
  23. }
  24. private void configureCache(Binder binder) {
  25. try {
  26. Map<Integer, Object> cacheConfig = new HashMap<Integer, Object>();
  27. cacheConfig.put(GCacheFactory.EXPIRATION_DELTA, 3600);
  28. CacheFactory cacheFactory = CacheManager.getInstance()
  29. .getCacheFactory();
  30. binder.bind(Cache.class).toInstance(
  31. cacheFactory.createCache(cacheConfig));
  32. } catch (Exception exc) {
  33. throw new RuntimeException(exc);
  34. }
  35. }
  36. private void configurePersistence(Binder binder) {
  37. ObjectifyService.register(Post.class);
  38. ObjectifyService.register(Usuario.class);
  39. binder.bind(UserService.class).toInstance(
  40. UserServiceFactory.getUserService());
  41. binder.bind(Objectify.class).toInstance(ObjectifyService.begin());
  42. binder.bind(PostDao.class).toInstance(new PostDao());
  43. binder.bind(UsuarioDao.class).toInstance(new UsuarioDao());
  44. }
  45. }