Package javax.jdo

Examples of javax.jdo.PersistenceManager


    resp.addCookie(new Cookie("username", googleUser.getEmail()));
   

    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();

    // fetch user
    Query qUser = pm.newQuery(talkfeed.data.User.class);
    qUser.setFilter("id == param");
    qUser.declareParameters("String param");
    qUser.setUnique(true);
    qUser.setRange(0, 1);
    talkfeed.data.User talkfeedUser = (talkfeed.data.User) qUser
        .execute(TextTools.cleanJID(googleUser.getEmail()));

    mav.getModel().put("showInvitation", talkfeedUser == null);
    qUser.closeAll();

    List<Blog> blogs = new ArrayList<Blog>();

    if (talkfeedUser != null) {
      // key from user
      Key key = talkfeedUser.getKey();

      // list subscription
      Query qSub = pm.newQuery(Subscription.class);
      qSub.setFilter("userKey == bk");
      qSub.declareParameters("com.google.appengine.api.datastore.Key bk");

      @SuppressWarnings("unchecked")
      List<Subscription> subs = (List<Subscription>) qSub.execute(key);

      for (Subscription sub : subs) {
        try {
          Blog b = pm.getObjectById(Blog.class, sub.getBlogKey());

          blogs.add(b);

        } catch (JDOObjectNotFoundException ex) {
          // blog deleted ! bad !!
          pm.currentTransaction().begin();
          pm.deletePersistent(sub);
          pm.currentTransaction().commit();
          pm.flush();
          continue;
        }
      }
      mav.getModel().put("blogs", blogs);
      qSub.closeAll();

    }

    pm.close();

    // no user
    if (talkfeedUser == null && googleUser != null && blogs.size() == 0) {
      return new ModelAndView("page/noblog");
    }
View Full Code Here


  }

  @RequestMapping(value = "/ajax/posts.*", method = RequestMethod.GET)
  public ModelAndView ajaxLastEntries(long blogId) {
    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();

    // select subscriptions
    Query q = pm.newQuery(BlogEntry.class);
    q.setOrdering("pubDate desc");
    q.setRange(0, 15);

    q.setFilter("blogKey == bk");
    q.declareParameters("com.google.appengine.api.datastore.Key bk");

    List<BlogEntry> list = new ArrayList<BlogEntry>(15);

    Blog blog = pm.getObjectById(Blog.class, blogId);

    @SuppressWarnings("unchecked")
    Collection<BlogEntry> col = (Collection<BlogEntry>) q.execute(blog
        .getKey());

    for (BlogEntry be : col) {
      list.add(be);
    }

    pm.close();

    ModelAndView mav = new ModelAndView("ajax/posts");
    mav.getModel().put("posts", list);

    return mav;
View Full Code Here

  public int removeBlogWithoutSubscription(){
    int nb = 0;
   
    DataManager dm = DataManagerFactory.getInstance();
   
    PersistenceManager pm = dm.newPersistenceManager();
   
    Query q = pm.newQuery(Blog.class);
   
    //fetch ALL blogs
    @SuppressWarnings("unchecked")
    List<Blog> allBlogs = (List<Blog>) q.execute();
   
    for(Blog b : allBlogs){
      //fetch sub
      Query sq = pm.newQuery(Subscription.class);
      sq.setFilter("blogKey == bk");
      sq.declareParameters("com.google.appengine.api.datastore.Key bk");
      sq.setRange(0, 1);
     
      @SuppressWarnings("unchecked")
      List<Subscription> ls = (List<Subscription>) sq.execute(b.getKey());
     
      if (ls.size() == 0){
        //delete blog without subscription
        pm.currentTransaction().begin();
        pm.deletePersistent(b);
        pm.currentTransaction().commit();
        nb++;
      }
    }
   
    pm.close();
   
    return nb;
  }
View Full Code Here

  public int removeOldestEntries(int nbdays){
    int nb = 0;
   
    DataManager dm = DataManagerFactory.getInstance();
   
    PersistenceManager pm = dm.newPersistenceManager();
   
    Query q = pm.newQuery(BlogEntry.class);
    q.setFilter("creaDate < date");
    q.setRange(0,50);
    q.declareParameters("java.util.Date date");
   
    Calendar cdat = Calendar.getInstance();
    cdat.add(Calendar.DATE , -nbdays);
   
    //fetch ALL blogs
    @SuppressWarnings("unchecked")
    List<BlogEntry> oldest = (List<BlogEntry>) q.execute(cdat.getTime());
   
    for(BlogEntry be : oldest){
      pm.currentTransaction().begin();
      pm.deletePersistent(be);
      pm.currentTransaction().commit();
      nb++;
    }

    pm.close();
   
    return nb;
  }
View Full Code Here

   * @return
   */
  public User getOrCreateUser(String jid){
   
    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();
   
    User user = dm.getUserFromId(pm , jid);
    if (user == null){
      user = new User();
      user.setId(jid);
      user.setDateCrea(new Date());
      user.setNextUpdate(new Date());
      pm.currentTransaction().begin();
      pm.makePersistent(user);
      pm.currentTransaction().commit();
    }
   
   
    pm.close();
    pm = null;
   
    return user;
  }
View Full Code Here

  @SuppressWarnings("unchecked")
  public void updateUsers(int nbMax) {

    Date now = Calendar.getInstance().getTime();

    PersistenceManager pm = DataManagerFactory.getInstance()
        .newPersistenceManager();


    // find user
    Query q = pm.newQuery(User.class);
    q.setFilter("nextUpdate <= next && paused == false && presence == 'available'");
    q.setOrdering("nextUpdate");
    q.declareParameters("java.util.Date next");
    q.setRange(0, nbMax);

    // list user
    List<User> list = (List<User>) q.execute(now);

    for (User user : list) {
      //build task for queuing
      QueuedTask task = new QueuedTask();
      task.setType(TaskType.updateuser);
      task.addParam("id", user.getKey().getId());
      QueuedTask.enqueue(task);


    }

    // end of process
    q.closeAll();
    pm.close();

  }
View Full Code Here

   * @return
   */
  public boolean removeUserSubscription(long id) {

    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();

    Subscription s = pm.getObjectById(Subscription.class, new Long(id));
    pm.currentTransaction().begin();
    pm.deletePersistent(s);
    pm.currentTransaction().commit();
    pm.flush();

    pm.close();

    return true;
  }
View Full Code Here

  public boolean removeUserSubscription(String email, final long blogId) {
   
    email = TextTools.cleanJID(email);
   
    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();

    Query qUser = pm.newQuery(User.class);
    qUser.setFilter("id == email");
    qUser.declareParameters("String email");
    qUser.setRange(0, 1);
    qUser.setUnique(true);

    User user = (User) qUser.execute(email);

    if (user == null) {
      qUser.closeAll();
      return false;
    }

    Blog blog = pm.getObjectById(Blog.class, new Long(blogId));

    Query q = pm.newQuery(Subscription.class);
    q.setFilter("userKey == uid && blogKey == bid");
    q.declareParameters("com.google.appengine.api.datastore.Key uid, com.google.appengine.api.datastore.Key bid");
    q.setRange(0, 1);

    @SuppressWarnings("unchecked")
    List<Subscription> list = (List<Subscription>) q.execute(user.getKey(),
        blog.getKey());

    if (list.size() > 0) {
      pm.currentTransaction().begin();
      pm.deletePersistent(list.get(0));
      pm.currentTransaction().commit();
      pm.flush();

    }
    q.closeAll();
    pm.close();

    return true;
  }
View Full Code Here

   */
  public void mailUser(long id){
   
    //data
    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();
   
    //fetch user
    User user = pm.getObjectById(User.class,id);
   
    if (user.getLastEmail() == null){
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR, -(4 * 24));
      user.setLastEmail(cal.getTime());
    }
   
    Date now = Calendar.getInstance().getTime();
   
    boolean ismail = false;
   
    StringBuilder email = new StringBuilder();
   
    email.append("Hello ");
    email.append(user.getId());
    email.append("\r\n\r\nHere are your updates since ");
    email.append(user.getLastEmail());
    email.append("\r\n\r\n");
   
    //retrieve subscriptions
    //fetch sub
    Query sq = pm.newQuery(Subscription.class);
    sq.setFilter("userKey == uk && lastDate > date");
    sq.declareParameters("com.google.appengine.api.datastore.Key uk, java.util.Date date");
   
    @SuppressWarnings("unchecked")
    List<Subscription> ls = (List<Subscription>) sq.execute(user.getKey(),user.getLastEmail());
   
    //fetch new subscriptions
    for(Subscription sub : ls){
      //fetch entries
      Query qEntry = pm.newQuery(BlogEntry.class);
      qEntry.setFilter("blogKey == bk && pubDate > date");
      qEntry.declareParameters("com.google.appengine.api.datastore.Key bk, java.util.Date date");
     
      //fetch entries
      List<BlogEntry> entries = (List<BlogEntry>) qEntry.execute(sub.getBlogKey(),user.getLastEmail());
View Full Code Here

   
    //prepare link
    link = TextTools.purgeLink(link);
   
    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();
   
    //find if blog already exists in database
    Blog blog = dm.getBlogFromLink(pm , link);

    if (blog == null) {
      //blog does not exist : load content to parse it
      String content = DocumentLoader.loadPage(link);
      String rss = null;
     
      //test if given link is already RSS or Atom FEED
      if (FeedManager.isFeed(content)){
        rss = link;
      }else {
        //extract RSS link from page content
        rss = TextTools.extractRssFromPage(content);
      }

      //test if rss information hase been found
      if (rss != null){
        //check again if blog exists with given link
        blog = dm.getBlogFromLink(pm , rss);
        //actually create new blog in database
        if (blog == null){
          blog = new Blog();
          blog.setLatestEntry(calLongTime.getTime());
          blog.setNextUpdate(now);
          blog.setLink(link);
          blog.setRss(rss);
          pm.currentTransaction().begin();
          pm.makePersistent(blog);
          pm.currentTransaction().commit();
        }
      } else {
        Logger.getLogger("updateBlog").log(Level.WARNING,
            "blog not found : "  + link);
      }
    }
   
    pm.close();
    pm = null;

    return blog;
  }
View Full Code Here

TOP

Related Classes of javax.jdo.PersistenceManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.