Examples of PersistenceManager


Examples of javax.jdo.PersistenceManager

  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

Examples of javax.jdo.PersistenceManager

   */
  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

Examples of javax.jdo.PersistenceManager

   
    //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

Examples of javax.jdo.PersistenceManager

  @Deprecated
  public void updateBlogs(int nbMax){
    if (nbMax <=0) return;
   
    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();
   
    //find blogs where "nextUpdate" is before now, ordered by "nextUpdate" date
    Query q = pm.newQuery(Blog.class);
    q.setRange(0, nbMax);
    q.setFilter("nextUpdate <= date");
    q.declareParameters("java.util.Date date");
    q.setOrdering("nextUpdate");
   
    Date now = Calendar.getInstance().getTime();
   
    @SuppressWarnings("unchecked")
    List<Blog> blogs = (List<Blog>) q.execute(now);
   
    for(Blog blog : blogs){
      //add treatment to queue
      QueuedTask task = new QueuedTask();
      task.setType(TaskType.updateblog);
      task.addParam("id", blog.getKey().getId());
      QueuedTask.enqueue(task);
     
    }
   
    q.closeAll();
    pm.close();
  }
View Full Code Here

Examples of javax.jdo.PersistenceManager

   * @param id
   */
  public void updateBlog(long id){
   
    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();
   
    //find blog
    Blog blog = pm.getObjectById(Blog.class,id);
   
    //check if blog has any updates
    BlogUpdateResult result = null;
   
    //fetch channel on the web via RSS
    Channel chan = FeedManager.loadRss(blog.getRss());
   
    if (chan != null){
      //update blog. Returns true if new items were added
      result = updateBlog(pm, blog, chan);
     
      //test url and title and correct if worng
      if (chan.getLink() != null && !chan.getLink().equalsIgnoreCase(blog.getLink())){
        blog.setLink(chan.getLink());
      }
     
      if (chan.getTitle() != null && !chan.getTitle().equalsIgnoreCase(blog.getTitle())){
        blog.setTitle(chan.getTitle());
      }
    }
   
    //Set last post entry date to blog
    if (result != null && result.isUpdate())
      blog.setLatestEntry(result.getLastestEntryDate());
   
    String messageLog = "";
   
    //build nextUpdate
    //if no new update : increase interval
    int newInterval = blog.getRefreshInterval();
    if (result != null && result.isUpdate()){
      newInterval = newInterval / 2;
      messageLog = "Blog updated [" + blog.getTitle() + "]";
    } else {
      newInterval = newInterval * 2;
      messageLog = "No new update [" + blog.getTitle() + "]";
    }
   
    if (newInterval <= MIN_INTERVAL) newInterval = MIN_INTERVAL;
    if (newInterval > MAX_INTERVAL) newInterval = MAX_INTERVAL;
   
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.MINUTE, newInterval);
   
    blog.setRefreshInterval(newInterval);
    blog.setNextUpdate(cal.getTime());
   
    pm.flush();
    pm.close();
   
    BlogCache.setNextUpdate(blog.getKey().getId(), newInterval);
   
    Logger.getLogger("updateBlog").log(Level.INFO,
        messageLog);
View Full Code Here

Examples of javax.jdo.PersistenceManager

    String key = "BLOG_" + id;
   
    Blog blog = (Blog) CacheService.get(key);
   
    if (blog == null){
      PersistenceManager pm = DataManagerFactory.getInstance().newPersistenceManager();
     
      blog = pm.getObjectById(Blog.class , id);
      if (blog != null){
        CacheService.put(key, blog);
      }
    }
   
View Full Code Here

Examples of javax.jdo.PersistenceManager

    String jid = args.get("id");
    String number = args.get("arg2");
   
    if (jid != null){
      DataManager dm = DataManagerFactory.getInstance();
      PersistenceManager pm = dm.newPersistenceManager();
     
      User u = dm.getUserFromId(pm,jid);
     
      Key subToRemove = null;
     
      //no number : remove last subscription
      if (number == null) subToRemove = u.getLastSubscriptionKey();
      else {
        int nb = 0;
        try {
          nb = Integer.valueOf(number);
        } catch (Exception ex){
          //bad number
          return;
        }
       
        //find sub
        Query q = pm.newQuery(Subscription.class);
        q.setFilter("userKey == k");
        q.declareParameters("com.google.appengine.api.datastore.Key k");
       
        @SuppressWarnings("unchecked")
        List<Subscription> subs = (List<Subscription>) q.execute(u.getKey());
        int i = 1;
        for(Subscription sub : subs){
          if (nb == i) {
            subToRemove = sub.getKey();
            break;
          }
          i++;
        }
      }
     
      if (subToRemove != null){
        UserManager serv = new UserManager();
        serv.removeUserSubscription(subToRemove.getId());
       
        TalkService.sendMessage(jid, "subscription is removed");
        //update cache
        SubscriptionCache.removeUserFromCache(jid);
      }
      pm.close();
    }
   
  }
View Full Code Here

Examples of javax.jdo.PersistenceManager

  /**
   * Create persistence manager
   * @return
   */
  private PersistenceManager createPersistenceManager(){
    PersistenceManager pm = pmFactory.getPersistenceManager();
    return pm;
  }
View Full Code Here

Examples of javax.jdo.PersistenceManager

    String unit = args.get("unit");
   
    if (id == null) return;
   
    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();
   
    User user = null;
   
    //bad action
    if (run == null || time == null) return;
   
    user = dm.getUserFromId(pm, id);
   
    //manage updates
    if (run != null){
      boolean isPaused = run.equals("0");
     
      user.setPaused(isPaused);
     
      String reply = null;
      if (isPaused){
        reply = "updates are paused !";
      } else {
        reply = "welcome back !";
      }
      TalkService.sendMessage(id, reply);
    }
   
    //interval between updates
    if (time != null && unit != null){
      int minutes = Integer.parseInt(time);
     
      if (unit.toLowerCase().startsWith("hour")){
        minutes = minutes * 60;
      }
     
      user.setInterval(minutes);
      TalkService.sendMessage(id, "blog update every " + minutes + " minute(s)");
    }
   
    pm.currentTransaction().begin();
    pm.flush();
    pm.currentTransaction().commit();
   
    pm.close();
    pm = null;
  }
View Full Code Here

Examples of javax.jdo.PersistenceManager

    Calendar cal2 = Calendar.getInstance();
    cal2.add(Calendar.HOUR, -24);
    Date lastProcess = cal2.getTime();
   
    DataManager dm = DataManagerFactory.getInstance();
    PersistenceManager pm = dm.newPersistenceManager();
   
    User user = dm.getUserFromId(pm , jid);
   
    Query q = pm.newQuery(Subscription.class);
    q.setFilter("userKey == uk");
    q.declareParameters("com.google.appengine.api.datastore.Key uk");
   
    @SuppressWarnings("unchecked")
    List<Subscription> list = (List<Subscription>) q.execute(user.getKey());
   
    for(Subscription s : list){
      pm.currentTransaction().begin();
      s.setLatestEntryNotifiedDate(lastPubDate);
      s.setLastProcessDate(lastProcess);
      pm.currentTransaction().commit();
      //TODO do something about lastProcessDate to push
    }
   
    pm.flush();
    pm.close();
    pm = null;
   
    TalkService.sendMessage(user.getId(), "rollback done : " + time + " " + unit);

  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.