Skip to content

Commit c715fb3

Browse files
committed
Minor session improvements
1 parent dc20cb2 commit c715fb3

File tree

7 files changed

+32
-92
lines changed

7 files changed

+32
-92
lines changed

jooby/src/main/java/io/jooby/Context.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ public interface Context extends Registry {
158158
* @return Existing session or <code>null</code>.
159159
*/
160160
default @Nullable Session sessionOrNull() {
161-
Session session = (Session) getAttributes().get("session");
161+
Session session = (Session) getAttributes().get(Session.NAME);
162162
if (session == null) {
163163
Router router = getRouter();
164164
SessionOptions options = router.getSessionOptions();

jooby/src/main/java/io/jooby/Session.java

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
* @since 2.0.0
2020
*/
2121
public interface Session {
22+
/** Attribute's name. */
23+
String NAME = "session";
24+
2225
/**
2326
* Session ID.
2427
*
@@ -41,7 +44,9 @@ public interface Session {
4144
* @param value Attribute's value.
4245
* @return This session.
4346
*/
44-
@Nonnull Session put(@Nonnull String name, int value);
47+
default @Nonnull Session put(@Nonnull String name, int value) {
48+
return put(name, Integer.toString(value));
49+
}
4550

4651
/**
4752
* Put a session attribute.
@@ -50,7 +55,9 @@ public interface Session {
5055
* @param value Attribute's value.
5156
* @return This session.
5257
*/
53-
@Nonnull Session put(@Nonnull String name, long value);
58+
default @Nonnull Session put(@Nonnull String name, long value) {
59+
return put(name, Long.toString(value));
60+
}
5461

5562
/**
5663
* Put a session attribute.
@@ -59,7 +66,9 @@ public interface Session {
5966
* @param value Attribute's value.
6067
* @return This session.
6168
*/
62-
@Nonnull Session put(@Nonnull String name, CharSequence value);
69+
default @Nonnull Session put(@Nonnull String name, @Nonnull CharSequence value) {
70+
return put(name, value.toString());
71+
}
6372

6473
/**
6574
* Put a session attribute.
@@ -68,7 +77,7 @@ public interface Session {
6877
* @param value Attribute's value.
6978
* @return This session.
7079
*/
71-
@Nonnull Session put(@Nonnull String name, String value);
80+
@Nonnull Session put(@Nonnull String name, @Nonnull String value);
7281

7382
/**
7483
* Put a session attribute.
@@ -77,7 +86,9 @@ public interface Session {
7786
* @param value Attribute's value.
7887
* @return This session.
7988
*/
80-
@Nonnull Session put(@Nonnull String name, float value);
89+
default @Nonnull Session put(@Nonnull String name, float value) {
90+
return put(name, Float.toString(value));
91+
}
8192

8293
/**
8394
* Put a session attribute.
@@ -86,7 +97,9 @@ public interface Session {
8697
* @param value Attribute's value.
8798
* @return This session.
8899
*/
89-
@Nonnull Session put(@Nonnull String name, double value);
100+
default @Nonnull Session put(@Nonnull String name, double value) {
101+
return put(name, Double.toString(value));
102+
}
90103

91104
/**
92105
* Put a session attribute.
@@ -95,7 +108,9 @@ public interface Session {
95108
* @param value Attribute's value.
96109
* @return This session.
97110
*/
98-
@Nonnull Session put(@Nonnull String name, boolean value);
111+
default @Nonnull Session put(@Nonnull String name, boolean value) {
112+
return put(name, Boolean.toString(value));
113+
}
99114

100115
/**
101116
* Put a session attribute.
@@ -104,7 +119,9 @@ public interface Session {
104119
* @param value Attribute's value.
105120
* @return This session.
106121
*/
107-
@Nonnull Session put(@Nonnull String name, Number value);
122+
default @Nonnull Session put(@Nonnull String name, @Nonnull Number value) {
123+
return put(name, value.toString());
124+
}
108125

109126
/**
110127
* Remove a session attribute.

jooby/src/main/java/io/jooby/internal/RequestSession.java

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class RequestSession implements Session {
2424
public RequestSession(Context context, Session session) {
2525
this.context = context;
2626
this.session = session;
27-
context.attribute("session", this);
27+
context.attribute(Session.NAME, this);
2828
}
2929

3030
@Nonnull @Override public String getId() {
@@ -35,42 +35,9 @@ public RequestSession(Context context, Session session) {
3535
return session.get(name);
3636
}
3737

38-
@Nonnull @Override public Session put(@Nonnull String name, int value) {
39-
session.put(name, value);
40-
return this;
41-
}
42-
43-
@Nonnull @Override public Session put(@Nonnull String name, long value) {
44-
session.put(name, value);
45-
return this;
46-
}
47-
48-
@Nonnull @Override public Session put(@Nonnull String name, CharSequence value) {
49-
session.put(name, value);
50-
return this;
51-
}
52-
5338
@Nonnull @Override public Session put(@Nonnull String name, String value) {
5439
session.put(name, value);
55-
return this;
56-
}
57-
58-
@Nonnull @Override public Session put(@Nonnull String name, float value) {
59-
session.put(name, value);
60-
return this;
61-
}
62-
63-
@Nonnull @Override public Session put(@Nonnull String name, double value) {
64-
session.put(name, value);
65-
return this;
66-
}
6740

68-
@Nonnull @Override public Session put(@Nonnull String name, boolean value) {
69-
return null;
70-
}
71-
72-
@Nonnull @Override public Session put(@Nonnull String name, Number value) {
73-
session.put(name, value);
7441
return this;
7542
}
7643

jooby/src/main/java/io/jooby/internal/SessionImpl.java

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import io.jooby.Value;
1010

1111
import javax.annotation.Nonnull;
12-
import java.time.Duration;
1312
import java.time.Instant;
1413
import java.util.Collections;
1514
import java.util.Map;
@@ -56,26 +55,7 @@ public SessionImpl(String id) {
5655
}
5756

5857
@Override public @Nonnull Value get(@Nonnull String name) {
59-
String value = attributes.get(name);
60-
return value == null ? Value.missing(name) : Value.value(name, value);
61-
}
62-
63-
@Override public @Nonnull Session put(@Nonnull String name, int value) {
64-
attributes.put(name, Integer.toString(value));
65-
updateFlags();
66-
return this;
67-
}
68-
69-
@Override public @Nonnull Session put(@Nonnull String name, long value) {
70-
attributes.put(name, Long.toString(value));
71-
updateFlags();
72-
return this;
73-
}
74-
75-
@Override public @Nonnull Session put(@Nonnull String name, CharSequence value) {
76-
attributes.put(name, value.toString());
77-
updateFlags();
78-
return this;
58+
return Value.create(name, attributes.get(name));
7959
}
8060

8161
@Override public @Nonnull Session put(@Nonnull String name, String value) {
@@ -84,30 +64,6 @@ public SessionImpl(String id) {
8464
return this;
8565
}
8666

87-
@Override public @Nonnull Session put(@Nonnull String name, float value) {
88-
attributes.put(name, Float.toString(value));
89-
updateFlags();
90-
return this;
91-
}
92-
93-
@Override public @Nonnull Session put(@Nonnull String name, double value) {
94-
attributes.put(name, Double.toString(value));
95-
updateFlags();
96-
return this;
97-
}
98-
99-
@Override public @Nonnull Session put(@Nonnull String name, boolean value) {
100-
attributes.put(name, Boolean.toString(value));
101-
updateFlags();
102-
return this;
103-
}
104-
105-
@Override public @Nonnull Session put(@Nonnull String name, Number value) {
106-
attributes.put(name, value.toString());
107-
updateFlags();
108-
return this;
109-
}
110-
11167
@Override public @Nonnull Value remove(@Nonnull String name) {
11268
String value = attributes.remove(name);
11369
updateFlags();
@@ -138,6 +94,7 @@ public SessionImpl(String id) {
13894

13995
@Override public Session clear() {
14096
attributes.clear();
97+
updateFlags();
14198
return this;
14299
}
143100

modules/server/jooby-jetty/src/main/java/io/jooby/internal/jetty/JettyContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ void complete(Throwable x) {
463463
}
464464

465465
private void ifSaveSession() {
466-
Session session = sessionOrNull();
466+
Session session = (Session) getAttributes().get(Session.NAME);
467467
if (session != null && (session.isNew() || session.isModify())) {
468468
SessionStore store = getRouter().getSessionOptions().getStore();
469469
store.save(session);

modules/server/jooby-netty/src/main/java/io/jooby/internal/netty/NettyContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ public void flush() {
478478
}
479479

480480
private void ifSaveSession() {
481-
Session session = sessionOrNull();
481+
Session session = (Session) getAttributes().get(Session.NAME);
482482
if (session != null && (session.isNew() || session.isModify())) {
483483
SessionStore store = getRouter().getSessionOptions().getStore();
484484
store.save(session);

modules/server/jooby-utow/src/main/java/io/jooby/internal/utow/UtowContext.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,6 @@ public Context setResponseType(@Nonnull MediaType contentType, @Nullable Charset
356356
}
357357

358358
@Override public void onComplete(HttpServerExchange exchange, Sender sender) {
359-
360359
ifSaveSession();
361360
destroy(null);
362361
}
@@ -367,7 +366,7 @@ public void onException(HttpServerExchange exchange, Sender sender, IOException
367366
}
368367

369368
private void ifSaveSession() {
370-
Session session = sessionOrNull();
369+
Session session = (Session) getAttributes().get(Session.NAME);
371370
if (session != null && (session.isNew() || session.isModify())) {
372371
SessionStore store = getRouter().getSessionOptions().getStore();
373372
store.save(session);

0 commit comments

Comments
 (0)