Package com.casamind.adware.server.servlet

Source Code of com.casamind.adware.server.servlet.BlobstoreHelper

/**
*
* Manages (CRUD) report sheets for each entity
*
*/
package com.casamind.adware.server.servlet;

import java.io.IOException;
import java.util.logging.Logger;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.casamind.adware.server.domain.OrphanBlob;
import com.casamind.adware.server.proxy.DatastoreProxy;
import com.casamind.adware.shared.GoogleDocumentsTaskTypes;
import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreFailureException;
import com.google.appengine.api.blobstore.BlobstoreServiceFactory;

@SuppressWarnings("serial")
public class BlobstoreHelper extends HttpServlet {
  private static final Logger log = Logger.getLogger(BlobstoreHelper.class.getName());
  private long blobThreadSleep;

  @Override
  public void init(ServletConfig config) throws ServletException {
    super.init(config);
    ServletContext context = config.getServletContext();
    blobThreadSleep = Long.parseLong(context.getInitParameter("blobThreadSleep"));
  }
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String task = req.getParameter("task");
    String blobKey = req.getParameter("blobKey");
    resp.setHeader("Content-Type", "text/html");
    try {
      if (task.equals(GoogleDocumentsTaskTypes.DELETE)) {
        try {
          log.info("Entering deletion task for orphan blob with key=" + blobKey);
          log.info("Sleeping " + blobThreadSleep + " milliseconds...");
          Thread.sleep(blobThreadSleep);
          log.info("Wake up!");
          BlobstoreServiceFactory.getBlobstoreService().delete(new BlobKey(blobKey));
          log.info("Successfully delete orphan blob with key=" + blobKey);
        } catch (BlobstoreFailureException e) {
          log.severe("Could not delete blob with key=" + blobKey);
          DatastoreProxy.createOrphantBlob(new OrphanBlob(blobKey));
          log.info("Created a corresponding OrphanBlob object.");
        }
      }
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

  }
}
TOP

Related Classes of com.casamind.adware.server.servlet.BlobstoreHelper

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.