public void testGetComponentForHotswap() throws Exception {
   S2Container container = new S2ContainerImpl();
   container.setHotswapMode(true);
   ComponentDefImpl cd = new ComponentDefImpl(FooImpl.class);
   cd.setInstanceDef(InstanceDefFactory.PROTOTYPE);
   container.register(cd);
   container.init();
   Hotswap hotswap = cd.getHotswap();
   Thread.sleep(500);
   Foo foo = (Foo) container.getComponent(Foo.class);
   hotswap.getFile().setLastModified(new Date().getTime());
   Foo foo2 = (Foo) container.getComponent(Foo.class);
   assertNotSame("1", foo.getClass(), foo2.getClass());
   assertFalse("1", foo2 instanceof FooImpl);
 }
 public void testDeployForHotswap() throws Exception {
   MockServletContextImpl ctx = new MockServletContextImpl("s2jsf-example");
   HttpServletRequest request = ctx.createRequest("/hello.html");
   S2Container container = new S2ContainerImpl();
   container.setHotswapMode(true);
   container.setRequest(request);
   ComponentDef cd = new ComponentDefImpl(Foo.class, "foo");
   container.register(cd);
   container.init();
   ComponentDeployer deployer = new SessionComponentDeployer(cd);
   Foo foo = (Foo) deployer.deploy();
   Hotswap hotswap = cd.getHotswap();
   Thread.sleep(500);
   hotswap.getFile().setLastModified(new Date().getTime());
   assertNotSame("1", foo.getClass(), deployer.deploy().getClass());
 }
Beispiel #3
0
  /**
   * Asserts that arguments can be resolved from lambda expressions for simple functional interfaces
   * that contain multiple type parameters.
   */
  public void shouldResolveMultiArguments() {
    BiFunction<String, Long, Integer> biFn = (str1, str2) -> Integer.valueOf(str1 + str2);
    BiConsumer<String, String> consumer1 = (s1, s2) -> {};
    BiConsumer<String, Long> consumer2 = (s1, s2) -> {};
    Foo<String, Long, Integer, Double> foo = (a, b, c) -> 2.0;
    Bar<String, Long, Integer, Double> bar = (a, b, c) -> {};

    assertEquals(
        TypeResolver.resolveRawArguments(BiFunction.class, biFn.getClass()),
        new Class<?>[] {String.class, Long.class, Integer.class});
    assertEquals(
        TypeResolver.resolveRawArguments(BiConsumer.class, consumer1.getClass()),
        new Class<?>[] {String.class, String.class});
    assertEquals(
        TypeResolver.resolveRawArguments(BiConsumer.class, consumer2.getClass()),
        new Class<?>[] {String.class, Long.class});
    assertEquals(
        TypeResolver.resolveRawArguments(Foo.class, foo.getClass()),
        new Class<?>[] {String.class, Long.class, Integer.class, Double.class});
    assertEquals(
        TypeResolver.resolveRawArguments(Bar.class, bar.getClass()),
        new Class<?>[] {String.class, Long.class, Integer.class, Unknown.class});
  }
Beispiel #4
0
 public static void runTest() {
   SystemOut.println("TestReflection");
   Foo foo = new Foo();
   Visualizer.visualize("foo", foo.getClass(), foo);
 }