Package org.mortbay.util.ajax

Examples of org.mortbay.util.ajax.Continuation


    @Override
    public void action(AtmosphereResourceImpl r) {
        super.action(r);
        if (r.action().type() == Action.TYPE.RESUME && r.isInScope()) {
            Continuation c = ContinuationSupport.getContinuation(r.getRequest(false), null);
            resumed.offer(c);
            complete(r);
        } else {
            try {
                r.getResponse().flushBuffer();
View Full Code Here


        }
    }

    @Override
    public AsyncSupport complete(AtmosphereResourceImpl r) {
        Continuation c = ContinuationSupport.getContinuation(r.getRequest(false), null);
        if (!c.isNew()) {
            c.resume();
        } else {
            r.getRequest().setAttribute(FrameworkConfig.CANCEL_SUSPEND_OPERATION, true);
        }
        return this;
    }
View Full Code Here

    public Action cancelled(AtmosphereRequest req, AtmosphereResponse res)
            throws IOException, ServletException {

        Action action = super.cancelled(req, res);
        if (req.getAttribute(MAX_INACTIVE) != null && Long.class.cast(req.getAttribute(MAX_INACTIVE)) == -1) {
            Continuation c = ContinuationSupport.getContinuation(req, null);
            if (c != null) {
                c.resume();
            }
        }
        return action;
    }
View Full Code Here

      }


      if (wait) {
        synchronized (queue.getActivationLock()) {
          final Continuation cont = ContinuationSupport.getContinuation(httpServletRequest, queue);

          if (!cont.isResumed() && !queue.messagesWaiting()) {
            queue.setActivationCallback(new JettyQueueActivationCallback(cont));
            if (cont.suspend(30 * 1000)) {
              return;
            }
          }
        }
      }
View Full Code Here

        return;
      }

      synchronized (queue) {
        if (wait) {
          final Continuation cont = ContinuationSupport.getContinuation(httpServletRequest, queue);

          if (!queue.messagesWaiting()) {

            queue.setActivationCallback(new JettyQueueActivationCallback(cont));

            if (!queue.messagesWaiting()) {
              cont.suspend(45 * 1000);
            }
          }
          else {
            queue.setActivationCallback(null);
          }
View Full Code Here

       
        if (!engine.getContinuationsEnabled()) {
            return null;
        }
       
        Continuation cont = ContinuationSupport.getContinuation(req, null);
        synchronized (cont) {
            Object o = cont.getObject();
            if (o instanceof ContinuationInfo) {
                ContinuationInfo ci = (ContinuationInfo)o;
                m = (MessageImpl)ci.getMessage();
               
                // now that we got the message we don't need ContinuationInfo
                // as we don't know how continuation was suspended, by jetty wrapper
                // or directly in which (latter) case we need to ensure that an original user object
                // if any, need to be restored
                cont.setObject(ci.getUserObject());
            }
            if (m == null && !cont.isNew()) {
                String message = "No message for existing continuation, status : "
                    + (cont.isPending() ? "Pending" : "Resumed");
                if (!(o instanceof ContinuationInfo)) {
                    message += ", ContinuationInfo object is unavailable";
                }
                LOG.warning(message);
            }
View Full Code Here

       
        if (!engine.getContinuationsEnabled()) {
            return null;
        }
       
        Continuation cont = ContinuationSupport.getContinuation(req, null);
        synchronized (cont) {
            Object o = cont.getObject();
            if (o instanceof ContinuationInfo) {
                ContinuationInfo ci = (ContinuationInfo)o;
                m = (MessageImpl)ci.getMessage();
               
                // now that we got the message we don't need ContinuationInfo
                // as we don't know how continuation was suspended, by jetty wrapper
                // or directly in which (latter) case we need to ensure that an original user object
                // if any, need to be restored
                cont.setObject(ci.getUserObject());
            }
            if (m == null && (cont.isPending() || cont.isResumed())) {
                String message = "No message for existing continuation, status : "
                    + (cont.isPending() ? "Pending" : "Resumed");
                if (!(o instanceof ContinuationInfo)) {
                    message += ", ContinuationInfo object is unavailable";
                }
                LOG.warning(message);
            }
View Full Code Here

        Message m = new MessageImpl();
        ContinuationInfo ci = new ContinuationInfo(m);
        Object userObject = new Object();
       
              
        Continuation c = EasyMock.createMock(Continuation.class);
        c.isNew();
        EasyMock.expectLastCall().andReturn(true);
        c.isPending();
        EasyMock.expectLastCall().andReturn(true);
        c.isResumed();
        EasyMock.expectLastCall().andReturn(true);
        c.getObject();
        EasyMock.expectLastCall().andReturn(ci).times(3);
       
        c.setObject(ci);
        EasyMock.expectLastCall();
        c.reset();
        EasyMock.expectLastCall();
        c.resume();
        EasyMock.expectLastCall();
        c.suspend(100);
        EasyMock.expectLastCall().andReturn(true);
        EasyMock.replay(c);
       
        HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
        request.getAttribute("org.mortbay.jetty.ajax.Continuation");
View Full Code Here

    }
   
    @Test
    public void testRetrieveFromContinuation() throws Exception {
       
        Continuation continuation = EasyMock.createMock(Continuation.class);
       
        Message m = new MessageImpl();
        ContinuationInfo ci = new ContinuationInfo(m);
        Object userObject = new Object();
        ci.setUserObject(userObject);
        continuation.getObject();
        EasyMock.expectLastCall().andReturn(ci);
        continuation.setObject(ci.getUserObject());
        EasyMock.expectLastCall();
        EasyMock.replay(continuation);
       
        HttpServletRequest httpRequest = EasyMock.createMock(HttpServletRequest.class);
        httpRequest.getAttribute("org.mortbay.jetty.ajax.Continuation");
View Full Code Here

    }
   
    @Test
    public void testContinuationsIgnored() throws Exception {
       
        Continuation continuation = EasyMock.createMock(Continuation.class);
        HttpServletRequest httpRequest = EasyMock.createMock(HttpServletRequest.class);
        httpRequest.getAttribute("org.mortbay.jetty.ajax.Continuation");
        EasyMock.expectLastCall().andReturn(continuation);
        EasyMock.replay(httpRequest);
       
View Full Code Here

TOP

Related Classes of org.mortbay.util.ajax.Continuation

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.