Package javax.jdo

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


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

    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

    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

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

    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

    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

   
    Date now = Calendar.getInstance().getTime();
   
    if (jid != null){
      DataManager dm = DataManagerFactory.getInstance();
      PersistenceManager pm = dm.newPersistenceManager();
     
      //fetch user
      Query quser = pm.newQuery(User.class);
      quser.setFilter("id == jid");
      quser.declareParameters("java.lang.String jid");
      quser.setUnique(true);
     
      User user = (User) quser.execute(jid);
     
      if (user != null){
        //fetch all subscriptions
        Query q = pm.newQuery(Subscription.class);
        q.setFilter("userKey == key");
        q.declareParameters("com.google.appengine.api.datastore.Key key");
       
        @SuppressWarnings("unchecked")
        List<Subscription> list = (List<Subscription>) q.execute(user.getKey());
       
        //mark all user's subscription as read (by recent date)
        for(Subscription s : list){
          pm.currentTransaction().begin();
          s.setLatestEntryNotifiedDate(now);
          s.setLastProcessDate(now);
          pm.currentTransaction().commit();
          pm.flush();
        }
       
      }

      pm.close();
      TalkService.sendMessage(jid, "all feeds are purged !");
    }
  }
View Full Code Here

    String id = args.get("id");
    JID jid = new JID(id);
   
    DataManager dm = DataManagerFactory.getInstance();
   
    PersistenceManager pm = dm.newPersistenceManager();
   
    //fetch user
    User u = dm.getUserFromId(pm , id);
   
    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 n = 0;
    StringBuilder sb = new StringBuilder();
    for(Subscription s : subs){
      Blog b = pm.getObjectById(Blog.class, s.getBlogKey());
     
      sb.append(++n);
      if(b.getTitle() != null){
        sb.append(" -[");
        sb.append(b.getTitle());
        sb.append("] ");
      } else {
        sb.append(" - ");
      }
      sb.append(b.getLink());
      sb.append("\r\n");
      //list.add(sb.toString());
    }
   
    pm.close();
    pm = null;
   
    //send list
    TalkService.sendMessage(jid, sb.toString());
View Full Code Here

import com.google.appengine.api.users.UserServiceFactory;

public class DataStore {
    @SuppressWarnings("unchecked")
    public List<Photo> queryPhotos() {
        PersistenceManager pm = PMF.get().getPersistenceManager();
        try {
            String queryStr = String.format("select from %s where user_email==currentUser order by modification desc", Photo.class.getName());
            Query query = pm.newQuery(queryStr);
            query.declareParameters("String currentUser");
            List<Photo> photos = (List<Photo>) query.execute(getUserEmail());
            if (photos.size() == 0) {
                photos.size();
            }
            return photos;
        } finally {
            pm.close();
        }
    }
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.