Skip to content

Commit c5046a7

Browse files
committed
API Change: Session data must be a Hash of <String, String> fix jooby-project#59
1 parent 3f77543 commit c5046a7

11 files changed

Lines changed: 226 additions & 114 deletions

File tree

coverage-report/src/test/java/org/jooby/ftl/FtlLocalsFeature.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ public class FtlLocalsFeature extends ServerFeature {
1212
use(new Ftl());
1313

1414
get("*", (req, rsp) -> {
15+
req.session().set("a", "A");
1516
req.set("app", req.require(Config.class).getConfig("application"));
1617
req.set("attr", "x");
1718
req.set("req", req);
19+
req.set("session", req.session());
1820
});
1921

2022
get("/", req -> {
@@ -26,6 +28,6 @@ public class FtlLocalsFeature extends ServerFeature {
2628
public void locals() throws Exception {
2729
request()
2830
.get("/")
29-
.expect("<html><body>dev:x:x</body></html>");
31+
.expect("<html><body>dev:x:x:A</body></html>");
3032
}
3133
}

coverage-report/src/test/java/org/jooby/hbs/HbsLocalsFeature.java

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

3+
import org.jooby.Session;
34
import org.jooby.View;
45
import org.jooby.test.ServerFeature;
56
import org.junit.Test;
@@ -9,12 +10,16 @@
910
public class HbsLocalsFeature extends ServerFeature {
1011

1112
{
13+
session(Session.Mem.class);
14+
1215
use(new Hbs());
1316

1417
get("*", (req, rsp) -> {
18+
req.session().set("a", "A");
1519
req.set("app", req.require(Config.class).getConfig("application"));
1620
req.set("attr", "x");
1721
req.set("req", req);
22+
req.set("session", req.session());
1823
});
1924

2025
get("/", req -> {
@@ -26,6 +31,6 @@ public class HbsLocalsFeature extends ServerFeature {
2631
public void locals() throws Exception {
2732
request()
2833
.get("/")
29-
.expect("<html><body>dev:x:x</body></html>");
34+
.expect("<html><body>dev:x:x:A</body></html>");
3035
}
3136
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<html><body>${app.env}:${attr}:${req.attr}</body></html>
1+
<html><body>${app.env}:${attr}:${req.attr}:${session.a}</body></html>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<html><body>{{app.env}}:{{attr}}:{{req.attr}}</body></html>
1+
<html><body>{{app.env}}:{{attr}}:{{req.attr}}:{{session.a}}</body></html>

jooby-ftl/src/main/java/org/jooby/internal/ftl/FtlWrapper.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020

2121
import java.util.Map;
2222

23-
import org.jooby.Locals;
23+
import org.jooby.Request;
24+
import org.jooby.Session;
2425

2526
import com.typesafe.config.Config;
2627
import com.typesafe.config.ConfigObject;
@@ -45,9 +46,13 @@ public TemplateModel wrap(final Object obj) throws TemplateModelException {
4546
ConfigObject config = ((Config) obj).root();
4647
return DefaultMapAdapter.adapt(config.unwrapped(), (ObjectWrapperWithAPISupport) wrapper);
4748
}
48-
if (obj instanceof Locals) {
49-
Map<String, Object> locals = ((Locals) obj).attributes();
50-
return DefaultMapAdapter.adapt(locals, (ObjectWrapperWithAPISupport) wrapper);
49+
if (obj instanceof Request) {
50+
Map<String, Object> req = ((Request) obj).attributes();
51+
return DefaultMapAdapter.adapt(req, (ObjectWrapperWithAPISupport) wrapper);
52+
}
53+
if (obj instanceof Session) {
54+
Map<String, String> session = ((Session) obj).attributes();
55+
return DefaultMapAdapter.adapt(session, (ObjectWrapperWithAPISupport) wrapper);
5156
}
5257
return wrapper.wrap(obj);
5358
}

jooby-hbs/src/main/java/org/jooby/hbs/Hbs.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,15 @@
2626
import java.util.Set;
2727
import java.util.function.BiConsumer;
2828

29-
import org.jooby.Env;
3029
import org.jooby.BodyFormatter;
30+
import org.jooby.Env;
3131
import org.jooby.Jooby;
3232
import org.jooby.View;
3333
import org.jooby.internal.hbs.ConfigValueResolver;
3434
import org.jooby.internal.hbs.HbsEngine;
3535
import org.jooby.internal.hbs.HbsHelpers;
36-
import org.jooby.internal.hbs.LocalsValueResolver;
36+
import org.jooby.internal.hbs.RequestValueResolver;
37+
import org.jooby.internal.hbs.SessionValueResolver;
3738

3839
import com.github.jknack.handlebars.Handlebars;
3940
import com.github.jknack.handlebars.ValueResolver;
@@ -168,7 +169,8 @@ public Hbs(final String prefix, final String suffix, final Class<?>... helpers)
168169
this.resolvers.add(MapValueResolver.INSTANCE);
169170
this.resolvers.add(JavaBeanValueResolver.INSTANCE);
170171
this.resolvers.add(MethodValueResolver.INSTANCE);
171-
this.resolvers.add(new LocalsValueResolver());
172+
this.resolvers.add(new RequestValueResolver());
173+
this.resolvers.add(new SessionValueResolver());
172174
this.resolvers.add(new ConfigValueResolver());
173175
this.resolvers.add(FieldValueResolver.INSTANCE);
174176
}

0 commit comments

Comments
 (0)