⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requestserviceimpl.java

📁 GridSphere 门户 提供一个基于 portlet 的高级开放源代码门户。GridSphere 是在欧盟提供基金的 GridLab 项目下开发的
💻 JAVA
字号:
/* * @version: $Id: RequestServiceImpl.java 5032 2006-08-17 18:15:06Z novotny $ */package org.gridsphere.services.core.request.impl;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.gridsphere.portlet.service.spi.PortletServiceConfig;import org.gridsphere.portlet.service.spi.PortletServiceFactory;import org.gridsphere.portlet.service.spi.PortletServiceProvider;import org.gridsphere.services.core.persistence.PersistenceManagerException;import org.gridsphere.services.core.persistence.PersistenceManagerRdbms;import org.gridsphere.services.core.persistence.PersistenceManagerService;import org.gridsphere.services.core.request.Request;import org.gridsphere.services.core.request.RequestService;import java.util.*;public class RequestServiceImpl implements RequestService, PortletServiceProvider {    private static final long REQUEST_SWEEP_FREQUENCY = 5000 * 60; // 5 minute intervals    private PersistenceManagerRdbms pm = null;    private Log log = LogFactory.getLog(RequestServiceImpl.class);    private Timer timer = null;    private class RequestSweeperTask extends TimerTask {        public void run() {            clearExpiredEntries();        }    }    public void init(PortletServiceConfig config) {        PersistenceManagerService pmservice = (PersistenceManagerService) PortletServiceFactory.createPortletService(PersistenceManagerService.class, true);        pm = pmservice.createGridSphereRdbms();        timer = new Timer(true);        timer.schedule(new RequestSweeperTask(), Calendar.getInstance().getTime(), REQUEST_SWEEP_FREQUENCY);    }    public void destroy() {        timer.cancel();        timer = null;    }    public Request getRequest(String requestId, String label) {        Request request = null;        String query = "select gsreq from "                + GenericRequest.class.getName()                + " gsreq where gsreq.oid='" + requestId + "' and gsreq.label='" + label + "'";        try {            request = (Request) this.pm.restore(query);        } catch (PersistenceManagerException e) {            log.error("Unable to retrieve request: " + requestId, e);        }        return request;    }    public Request createRequest(String label) {        Request request = new GenericRequest();        request.setLabel(label);        saveRequest(request);        return request;    }    public void saveRequest(Request request) {        try {            pm.saveOrUpdate(request);        } catch (PersistenceManagerException e) {            log.error("Unable to create or update password for user", e);        }    }    protected void clearExpiredEntries() {        //log.debug("Updating generic requests");        Date date = Calendar.getInstance().getTime();        List<Request> reqs = getAllRequests();        for (Request req : reqs) {            if (req.getLifetime() == null) {                log.debug("deleting request with no lifetime specified " + req.getOid());                deleteRequest(req);            } else if (date.compareTo(req.getLifetime()) >= 0) {                log.debug("deleting request " + req.getOid());                deleteRequest(req);            }        }    }    public void deleteRequest(Request request) {        try {            pm.delete(request);        } catch (PersistenceManagerException e) {            log.error("Unable to delete request: " + request.getOid(), e);        }    }    public List<Request> getAllRequests() {        String oql = "select gsreq from "                + GenericRequest.class.getName()                + " gsreq ";        try {            return pm.restoreList(oql);        } catch (PersistenceManagerException e) {            log.error("Error retrieving requests", e);            return new ArrayList();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -