Skip to content

Commit db9ea85

Browse files
committed
sync javadoc on main classes ref jooby-project#495
1 parent 3325cc3 commit db9ea85

File tree

25 files changed

+1075
-2396
lines changed

25 files changed

+1075
-2396
lines changed

coverage-report/src/test/java/org/jooby/HelloAsyncFeature.java

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.jooby;
22

3-
import java.util.concurrent.ExecutorService;
43
import java.util.concurrent.Executors;
54

65
import org.jooby.test.ServerFeature;
@@ -9,7 +8,7 @@
98
public class HelloAsyncFeature extends ServerFeature {
109

1110
{
12-
ExecutorService executor = Executors.newSingleThreadExecutor();
11+
executor(Executors.newSingleThreadExecutor());
1312

1413
Object ierr = new Object();
1514

@@ -19,30 +18,22 @@ public class HelloAsyncFeature extends ServerFeature {
1918
}
2019
});
2120

22-
get("/hi", promise(deferred -> {
23-
executor.execute(() -> {
24-
deferred.resolve("hi");
25-
});
26-
}));
21+
get("/hi", deferred(() -> "hi"));
2722

28-
get("/err/init", promise(deferred -> {
23+
get("/err/init", deferred(() -> {
2924
throw new Err(Status.SERVER_ERROR);
3025
}));
3126

3227
get("/err/async", promise(deferred -> {
33-
executor.execute(deferred.run(() -> {
34-
throw new Err(Status.NOT_FOUND);
35-
}));
28+
throw new Err(Status.NOT_FOUND);
3629
}));
3730

38-
get("/err/send", promise(deferred -> {
39-
executor.execute(deferred.run(() -> ierr));
31+
get("/err/send", deferred(() -> {
32+
return ierr;
4033
}));
4134

42-
get("/:name", promise((req, deferred) -> {
43-
executor.execute(deferred.run(() -> {
44-
return req.param("name").value();
45-
}));
35+
get("/:name", deferred(req -> {
36+
return req.param("name").value();
4637
}));
4738
}
4839

coverage-report/src/test/java/org/jooby/issues/Issue315.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public class Issue315 extends ServerFeature {
6666

6767
ExecutorService executor = Executors.newSingleThreadExecutor();
6868
get("/async", promise(deferred -> {
69-
executor.execute(deferred.run(() -> "async"));
69+
executor.execute(() -> deferred.resolve("async"));
7070
}));
7171

7272
before((req, rsp) -> {
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package org.jooby.issues;
2+
3+
import static javaslang.Predicates.is;
4+
5+
import org.jooby.Err;
6+
import org.jooby.Status;
7+
import org.jooby.test.ServerFeature;
8+
import org.junit.Test;
9+
10+
public class Issue382b extends ServerFeature {
11+
12+
{
13+
14+
get("/err1", () -> {
15+
throw new IllegalArgumentException("err1");
16+
});
17+
18+
get("/err2", () -> {
19+
throw new IllegalStateException("err2");
20+
});
21+
22+
get("/400", () -> {
23+
throw new Err(404);
24+
});
25+
26+
get("/500", () -> {
27+
throw new Err(500);
28+
});
29+
30+
err(Status.NOT_FOUND, (req, rsp, err) -> {
31+
rsp.send("Not found");
32+
});
33+
34+
err(is(Status.BAD_REQUEST), (req, rsp, err) -> {
35+
rsp.send(err.getCause().getClass().getSimpleName());
36+
});
37+
38+
err((req, rsp, err) -> {
39+
rsp.send("Fallback");
40+
});
41+
}
42+
43+
@Test
44+
public void shouldHandleSpecificErrTypes() throws Exception {
45+
request()
46+
.get("/err1")
47+
.expect("IllegalArgumentException");
48+
49+
request()
50+
.get("/err2")
51+
.expect("Fallback");
52+
53+
request()
54+
.get("/400")
55+
.expect("Not found");
56+
57+
request()
58+
.get("/500")
59+
.expect("Fallback");
60+
}
61+
62+
}

coverage-report/src/test/java/org/jooby/issues/Issue482.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.jooby.issues;
22

3-
import java.util.concurrent.Executor;
43
import java.util.concurrent.Executors;
54

65
import org.jooby.MediaType;
@@ -31,10 +30,10 @@ public Raw(final String value) {
3130

3231
use(new Jackson());
3332

34-
Executor exec = Executors.newSingleThreadExecutor();
33+
executor(Executors.newSingleThreadExecutor());
3534

36-
get("/482/raw", promise(deferred -> {
37-
exec.execute(deferred.run(() -> Results.json("{\"status\":\"success\"}")));
35+
get("/482/raw", deferred(() -> {
36+
return Results.json("{\"status\":\"success\"}");
3837
}));
3938

4039
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package org.jooby.issues;
2+
3+
import static org.junit.Assert.assertNotNull;
4+
import static org.junit.Assert.assertTrue;
5+
6+
import org.jooby.Deferred;
7+
import org.jooby.mvc.Path;
8+
import org.jooby.test.ServerFeature;
9+
import org.junit.Test;
10+
11+
public class Issue498b extends ServerFeature {
12+
13+
@Path("/mvc")
14+
public static class Controller {
15+
16+
@Path("/498")
17+
public Deferred deferred() {
18+
return Deferred.deferred(() -> Thread.currentThread().getName());
19+
}
20+
21+
@Path("/498/0")
22+
public Deferred deferred1() {
23+
return Deferred.deferred(req -> {
24+
assertNotNull(req);
25+
return Thread.currentThread().getName();
26+
});
27+
}
28+
29+
}
30+
31+
{
32+
get("/498", deferred("direct", req -> {
33+
assertNotNull(req);
34+
return Thread.currentThread().getName();
35+
}));
36+
37+
get("/498/0", deferred("direct", () -> {
38+
return Thread.currentThread().getName();
39+
}));
40+
41+
use(Controller.class);
42+
43+
err((req, rsp, x) -> {
44+
rsp.send(x.getCause().getMessage());
45+
});
46+
}
47+
48+
@Test
49+
public void functionalDeferred() throws Exception {
50+
request()
51+
.get("/498")
52+
.expect(v -> {
53+
assertTrue(v.toLowerCase().contains("task"));
54+
});
55+
56+
request()
57+
.get("/498/0")
58+
.expect(v -> {
59+
assertTrue(v.toLowerCase().contains("task"));
60+
});
61+
62+
request()
63+
.get("/mvc/498")
64+
.expect(v -> {
65+
assertTrue(v.toLowerCase().contains("task"));
66+
});
67+
68+
request()
69+
.get("/mvc/498/0")
70+
.expect(v -> {
71+
assertTrue(v.toLowerCase().contains("task"));
72+
});
73+
}
74+
75+
}

jooby-hbm/src/test/java/hbm5/HbmApp.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package hbm5;
22

3-
import java.util.concurrent.ExecutorService;
43
import java.util.concurrent.Executors;
54

65
import org.hibernate.Session;
@@ -39,27 +38,23 @@ public class HbmApp extends Jooby {
3938

4039
use("*", "*", Hbm.openSessionInView());
4140

42-
ExecutorService executor = Executors.newSingleThreadExecutor();
41+
executor(Executors.newSingleThreadExecutor());
4342

4443
use("/api/beer")
4544
.post(req -> require(UnitOfWork.class)
4645
.apply(em -> em.merge(req.body(Beer.class))))
47-
.post("/async", promise((req, deferred) -> {
46+
.post("/async", deferred(req -> {
4847
Beer beer = req.body(Beer.class);
49-
executor.execute(deferred.run(() -> {
50-
return require(UnitOfWork.class)
51-
.apply(em -> em.merge(beer));
52-
}));
48+
return require(UnitOfWork.class)
49+
.apply(em -> em.merge(beer));
5350
}))
5451
.get("/q",
5552
() -> require(Session.class).createQuery("from Beer", Beer.class).getResultList())
5653
.get("/:id",
5754
req -> require(Session.class).getReference(Beer.class,
5855
req.param("id").longValue()).name)
59-
.get("/async", promise((deferred) -> {
60-
executor.execute(deferred.run(() -> {
61-
return require(Session.class).createQuery("from Beer", Beer.class).getResultList();
62-
}));
56+
.get("/async", deferred(() -> {
57+
return require(Session.class).createQuery("from Beer", Beer.class).getResultList();
6358
}))
6459
.get(() -> require(UnitOfWork.class)
6560
.apply(em -> em.createQuery("from Beer", Beer.class).getResultList()));

jooby/src/main/java/org/jooby/Asset.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,19 @@
2828

2929
/**
3030
* Usually a public file/resource like javascript, css, images files, etc...
31-
* An asset consist of content type, stream and last modified since, between others.
31+
* An asset consist of content type, stream and last modified since attributes, between others.
3232
*
3333
* @author edgar
3434
* @since 0.1.0
3535
* @see Jooby#assets(String)
3636
*/
3737
public interface Asset {
3838

39+
/**
40+
* Forwarding asset.
41+
*
42+
* @author edgar
43+
*/
3944
public class Forwarding implements Asset {
4045

4146
private Asset asset;

jooby/src/main/java/org/jooby/AsyncMapper.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
* </p>
3232
*
3333
* <h2>usage</h2>
34+
*
35+
* Script route:
3436
* <pre>{@code
3537
* {
3638
* map(new AsyncMapper());
@@ -49,6 +51,19 @@
4951
* }
5052
* }</pre>
5153
*
54+
* From Mvc route you can return a callable:
55+
*
56+
* <pre>{@code
57+
*
58+
* public class Controller {
59+
* &#64;GET
60+
* &#64;Path("/async")
61+
* public Callable<String> async() {
62+
* return "Success";
63+
* }
64+
* }
65+
* }</pre>
66+
*
5267
* @author edgar
5368
* @since 1.0.0
5469
*/

0 commit comments

Comments
 (0)