@BeforeMethod
  public void create() throws Throwable {
    framework = new AtmosphereFramework();
    framework.setDefaultBroadcasterClassName(SimpleBroadcaster.class.getName());
    framework
        .setAsyncSupport(
            new AsynchronousProcessor(framework.getAtmosphereConfig()) {

              @Override
              public Action service(AtmosphereRequest req, AtmosphereResponse res)
                  throws IOException, ServletException {
                return suspended(req, res);
              }

              public void action(AtmosphereResourceImpl r) {
                try {
                  resumed(r.getRequest(), r.getResponse());
                } catch (IOException e) {
                  e.printStackTrace();
                } catch (ServletException e) {
                  e.printStackTrace();
                }
              }
            })
        .init();
  }
  @BeforeMethod
  public void create() throws Throwable {
    framework = new AtmosphereFramework();
    framework.setAsyncSupport(mock(AsyncSupport.class));
    framework.init(
        new ServletConfig() {
          @Override
          public String getServletName() {
            return "void";
          }

          @Override
          public ServletContext getServletContext() {
            return mock(ServletContext.class);
          }

          @Override
          public String getInitParameter(String name) {
            return null;
          }

          @Override
          public Enumeration<String> getInitParameterNames() {
            return null;
          }
        });
  }
Ejemplo n.º 3
0
 @BeforeMethod
 public void setUp() throws Exception {
   AtmosphereFramework f =
       new AtmosphereFramework()
           .addInitParameter(ApplicationConfig.WEBSOCKET_SUPPRESS_JSR356, "true");
   config = f.init().getAtmosphereConfig();
   factory = config.getBroadcasterFactory();
   factory.remove(Broadcaster.ROOT_MASTER);
   metaBroadcaster = config.metaBroadcaster();
 }
  @Test
  public void testOnClose() throws IOException, ServletException {
    framework.addAtmosphereHandler(
        "/a",
        new AbstractReflectorAtmosphereHandler() {
          @Override
          public void onRequest(AtmosphereResource resource) throws IOException {}

          @Override
          public void destroy() {}
        });

    AtmosphereRequest request = new AtmosphereRequest.Builder().pathInfo("/a").build();

    final AtomicReference<Boolean> closed = new AtomicReference<Boolean>();

    final AtmosphereResourceEventListener listener =
        new AtmosphereResourceEventListenerAdapter() {
          @Override
          public void onClose(AtmosphereResourceEvent event) {
            closed.set(true);
          }
        };

    framework.interceptor(
        new AtmosphereInterceptor() {
          @Override
          public void configure(AtmosphereConfig config) {}

          @Override
          public Action inspect(AtmosphereResource r) {
            r.addEventListener(listener).suspend();
            try {
              r.getBroadcaster().broadcast("void").get();
            } catch (InterruptedException e) {
            } catch (ExecutionException e) {
            }
            return Action.CONTINUE;
          }

          @Override
          public void postInspect(AtmosphereResource r) {
            try {
              r.close();
            } catch (IOException e) {
              e.printStackTrace();
            }
          }
        });
    framework.doCometSupport(request, AtmosphereResponse.newInstance());
    assertTrue(closed.get());
  }
Ejemplo n.º 5
0
  @Test
  public void setCookieTest()
      throws IOException, ServletException, ExecutionException, InterruptedException {
    final AtomicReference<Cookie> cValue = new AtomicReference<Cookie>();
    final AtomicReference<AtmosphereResource> r = new AtomicReference<AtmosphereResource>();

    framework.addAtmosphereHandler(
        "/*",
        new AtmosphereHandler() {

          @Override
          public void onRequest(AtmosphereResource resource) throws IOException {
            resource.getResponse().addCookie(resource.getRequest().getCookies()[0]);
            r.set(resource);
            resource.getBroadcaster().addAtmosphereResource(resource);
          }

          @Override
          public void onStateChange(AtmosphereResourceEvent event) throws IOException {
            Cookie[] c = event.getResource().getRequest().getCookies();
            cValue.set(c[0]);
          }

          @Override
          public void destroy() {}
        });
    Set<Cookie> c = new HashSet<Cookie>();
    Cookie a = new Cookie("yo", "man");
    a.setComment("kdaskjdaskda");
    a.setDomain("dasdasdasd");
    a.setHttpOnly(true);
    a.setPath("/ya");
    c.add(a);

    AtmosphereRequest request =
        new AtmosphereRequestImpl.Builder().cookies(c).pathInfo("/a").build();
    AtmosphereResponse response =
        AtmosphereResponseImpl.newInstance().delegateToNativeResponse(false);
    response.destroyable(false);
    framework.doCometSupport(request, response);

    r.get().getBroadcaster().broadcast("yo").get();
    assertNotNull(cValue.get());

    Cookie i = c.iterator().next();
    assertEquals(i.getName(), cValue.get().getName());
    assertEquals(i.getValue(), cValue.get().getValue());
    assertEquals(
        "yo=man; Domain=dasdasdasd; Path=/ya; HttpOnly", response.headers().get("Set-Cookie"));
  }
  @Test
  public void testEmptyDestroy() throws IOException, ServletException {
    Broadcaster b = framework.getBroadcasterFactory().lookup(B.class, "/test", true);
    b.setBroadcasterLifeCyclePolicy(BroadcasterLifeCyclePolicy.EMPTY_DESTROY);
    AR ah = new AR();

    framework.addAtmosphereHandler("/*", ah, b).init();
    AtmosphereRequest request =
        new AtmosphereRequestImpl.Builder().pathInfo("/a").method("GET").build();
    framework.doCometSupport(request, AtmosphereResponseImpl.newInstance());
    b.removeAtmosphereResource(ah.resource);

    assertFalse(B.class.cast(b).releaseExternalResources.get());
    assertTrue(B.class.cast(b).destroy.get());
  }
Ejemplo n.º 7
0
 /**
  * Return the value of the init params defined in web.xml or application.xml.
  *
  * @param name the name
  * @return the list of init params defined in web.xml or application.xml
  */
 public String getInitParameter(String name) {
   try {
     return framework.getServletConfig().getInitParameter(name);
   } catch (Throwable ex) {
     // Don't fail if Tomcat crash on startup with an NPE
     return null;
   }
 }
Ejemplo n.º 8
0
  @Test
  public void basicHandlerTest()
      throws IOException, ServletException, ExecutionException, InterruptedException {
    final AtomicReference<Cookie> cValue = new AtomicReference<Cookie>();
    final AtomicReference<AtmosphereResource> r = new AtomicReference<AtmosphereResource>();

    framework.addAtmosphereHandler(
        "/*",
        new AtmosphereHandler() {

          @Override
          public void onRequest(AtmosphereResource resource) throws IOException {
            r.set(resource);
            resource.getBroadcaster().addAtmosphereResource(resource);
          }

          @Override
          public void onStateChange(AtmosphereResourceEvent event) throws IOException {
            Cookie[] c = event.getResource().getRequest().getCookies();
            cValue.set(c[0]);
          }

          @Override
          public void destroy() {}
        });
    Set<Cookie> c = new HashSet<Cookie>();
    c.add(new Cookie("yo", "man"));

    AtmosphereRequest request =
        new AtmosphereRequestImpl.Builder().cookies(c).pathInfo("/a").build();
    framework.doCometSupport(request, AtmosphereResponseImpl.newInstance());

    r.get().getBroadcaster().broadcast("yo").get();
    assertNotNull(cValue.get());

    Cookie i = c.iterator().next();
    assertEquals(i.getName(), cValue.get().getName());
    assertEquals(i.getValue(), cValue.get().getValue());
  }
  @Test
  public void testIdleResume() throws IOException, ServletException, InterruptedException {
    B b = framework.getBroadcasterFactory().lookup(B.class, "/test", true);
    b.setBroadcasterLifeCyclePolicy(
        new BroadcasterLifeCyclePolicy.Builder()
            .policy(BroadcasterLifeCyclePolicy.ATMOSPHERE_RESOURCE_POLICY.IDLE_RESUME)
            .idleTimeInMS(500)
            .build());
    b.latch = new CountDownLatch(1);

    AR ah = new AR();

    framework.addAtmosphereHandler("/*", ah, b).init();
    AtmosphereRequest request =
        new AtmosphereRequestImpl.Builder().pathInfo("/a").method("GET").build();
    framework.doCometSupport(request, AtmosphereResponseImpl.newInstance());

    b.latch.await();

    assertFalse(B.class.cast(b).releaseExternalResources.get());
    assertTrue(B.class.cast(b).destroy.get());
  }
  @Override
  public AnnotationProcessor configure(final AtmosphereFramework framework) {
    ServletContext sc = framework.getServletContext();

    Map<Class<? extends Annotation>, Set<Class<?>>> annotations =
        (Map<Class<? extends Annotation>, Set<Class<?>>>) sc.getAttribute(ANNOTATION_ATTRIBUTE);

    if (annotations == null || annotations.isEmpty()) {
      delegate = new BytecodeBasedAnnotationProcessor();
    } else {
      delegate = new ServletContainerInitializerAnnotationProcessor(annotations, framework);
    }
    delegate.configure(framework);
    return this;
  }
Ejemplo n.º 11
0
 /**
  * Delegate the request processing to an instance of {@link org.atmosphere.cpr.AsyncSupport}
  *
  * @param req the {@link javax.servlet.http.HttpServletRequest}
  * @param res the {@link javax.servlet.http.HttpServletResponse}
  * @throws java.io.IOException
  * @throws javax.servlet.ServletException
  */
 @Override
 public void doPost(HttpServletRequest req, HttpServletResponse res)
     throws IOException, ServletException {
   framework.doCometSupport(AtmosphereRequest.wrap(req), AtmosphereResponse.wrap(res));
 }
Ejemplo n.º 12
0
 /**
  * Return the {@link org.atmosphere.util.UUIDProvider}
  *
  * @return {@link org.atmosphere.util.UUIDProvider}
  */
 public UUIDProvider uuidProvider() {
   return framework.uuidProvider();
 }
Ejemplo n.º 13
0
 @Override
 public void destroy() {
   framework.destroy();
 }
 @AfterMethod
 public void after() {
   framework.destroy();
 }
Ejemplo n.º 15
0
 /**
  * Return the list of {@link org.atmosphere.cpr.AtmosphereFramework.AtmosphereHandlerWrapper}s.
  *
  * @return the list of {@link org.atmosphere.cpr.AtmosphereFramework.AtmosphereHandlerWrapper}
  */
 public Map<String, AtmosphereFramework.AtmosphereHandlerWrapper> handlers() {
   return framework.getAtmosphereHandlers();
 }
Ejemplo n.º 16
0
 public void init(final ServletConfig sc) throws ServletException {
   super.init(sc);
   // No native supported
   framework.setUseNativeImplementation(false);
   framework.init(sc);
 }
Ejemplo n.º 17
0
 /**
  * Return the {@link ServletContext}.
  *
  * @return {@link ServletContext}
  */
 public ServletContext getServletContext() {
   return framework.getServletContext();
 }
Ejemplo n.º 18
0
 /**
  * Return the current WebServer used.
  *
  * @return the current WebServer used
  */
 public String getWebServerName() {
   return framework.getAsyncSupport().getContainerName();
 }
Ejemplo n.º 19
0
 /**
  * Return an instance of {@link DefaultBroadcasterFactory}.
  *
  * @return an instance of {@link DefaultBroadcasterFactory}
  */
 public BroadcasterFactory getBroadcasterFactory() {
   return framework.getBroadcasterFactory();
 }
Ejemplo n.º 20
0
 /**
  * Return the {@link ServletConfig}.
  *
  * @return {@link ServletConfig}
  */
 public ServletConfig getServletConfig() {
   return framework.getServletConfig();
 }
Ejemplo n.º 21
0
 @AfterMethod
 public void unSet() throws Exception {
   framework.destroy();
 }
Ejemplo n.º 22
0
 /**
  * Return the {@link WebSocketFactory}
  *
  * @return the {@link WebSocketFactory}
  */
 public WebSocketFactory websocketFactory() {
   return framework.webSocketFactory();
 }
Ejemplo n.º 23
0
 /**
  * Return the {@link AtmosphereResourceFactory}
  *
  * @return the AtmosphereResourceFactory
  */
 public AtmosphereResourceFactory resourcesFactory() {
   return framework.atmosphereFactory();
 }
Ejemplo n.º 24
0
 /**
  * Return the {@link AtmosphereResourceSessionFactory}
  *
  * @return the AtmosphereResourceSessionFactory
  */
 public AtmosphereResourceSessionFactory sessionFactory() {
   return framework.sessionFactory();
 }
Ejemplo n.º 25
0
 /**
  * Return the {@link DefaultMetaBroadcaster}
  *
  * @return the MetaBroadcaster
  */
 public MetaBroadcaster metaBroadcaster() {
   return framework.metaBroadcaster();
 }