Skip to content

Commit 6b7b43b

Browse files
authored
Merge pull request #3 from michalwa/master
Minor Enhancements & Code Style Fixes
2 parents 03b86c8 + 5c7dd0b commit 6b7b43b

28 files changed

+485
-1860
lines changed

README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ Express app = new Express();
3333

3434
app.get("/", (req, res) -> {
3535
res.send("Hello World");
36-
});
37-
38-
app.listen(); // Will listen on port 80 which is set as default
36+
}).listen(); // Will listen on port 80 which is set as default
3937
```
4038

4139
# Docs:
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package examples;
2+
3+
import express.Express;
4+
import express.http.request.Authorization;
5+
import express.utils.Status;
6+
7+
public class AuthorizationExamples
8+
{
9+
public static void main(String[] args)
10+
{
11+
Express app = new Express();
12+
13+
app.get("/", (req, res) -> {
14+
if(Authorization.validate(req, Authorization.validator("Basic", "123456789"))) {
15+
res.send("You are authorized!");
16+
} else {
17+
res.setStatus(Status._401);
18+
res.send();
19+
}
20+
});
21+
22+
app.listen(() -> System.out.println("Listening!"));
23+
}
24+
}

src/main/java/examples/Examples.java

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,54 +12,52 @@ public class Examples {
1212
public static void main(String[] args) throws IOException {
1313
Express app = new Express();
1414

15-
app.get("/", (req, res) -> {
16-
res.send("Hello World");
17-
});
18-
19-
app.get("/posts", (req, res) -> {
15+
app.get("/", (req, res) -> res.send("Hello World"))
16+
17+
.get("/posts", (req, res) -> {
2018
String page = req.getQuery("page"); // Contains '12'
2119
String from = req.getQuery("from"); // Contains 'John'
2220
res.send("Page: " + page + ", from: " + from); // Send: "Page: 12, from: John"
23-
});
21+
})
2422

25-
app.get("/posts/:user/:type", (req, res) -> {
23+
.get("/posts/:user/:type", (req, res) -> {
2624
String user = req.getParam("user"); // Contains 'john'
2725
String type = req.getParam("type"); // Contains 'all'
2826
res.send("User: " + user + ", type: " + type); // Send: "User: john, type: all"
29-
});
27+
})
3028

31-
app.get("/setcookie", (req, res) -> {
29+
.get("/setcookie", (req, res) -> {
3230
Cookie cookie = new Cookie("username", "john");
3331
res.setCookie(cookie);
3432
res.send("Cookie has been set!");
35-
});
33+
})
3634

37-
app.get("/showcookie", (req, res) -> {
35+
.get("/showcookie", (req, res) -> {
3836
Cookie cookie = req.getCookie("username");
3937
String username = cookie.getValue();
4038
res.send("The username is: " + username); // Prints "The username is: john"
41-
});
39+
})
4240

43-
app.post("/register", (req, res) -> {
41+
.post("/register", (req, res) -> {
4442
String email = req.getFormQuery("email");
4543
String username = req.getFormQuery("username");
4644
// Process data
4745

4846
// Prints "E-Mail: [email protected], Username: john"
4947
res.send("E-Mail: " + email + ", Username: " + username);
50-
});
48+
})
5149

52-
app.get("/res", (req, res) -> {
50+
.get("/res", (req, res) -> {
5351
// res.send(); // Send empty response
5452
// res.send("Hello World"); // Send an string
5553
// res.send("chart.pdf"); // Send an file
5654
// res.setStatus(200); // Set the response status
5755
// res.getStatus(); // Returns the current response status
5856
// res.setCookie(new Cookie(...)); // Send an cookie
5957
// res.isClosed(); // Check if already something has been send to the client
60-
});
58+
})
6159

62-
app.get("/req/", (req, res) -> {
60+
.get("/req/", (req, res) -> {
6361
// req.getURI(); // Request URI
6462
// req.getHost(); // Request host (mostly localhost)
6563
// req.getMethod(); // Request method (here GET)
@@ -76,14 +74,14 @@ public static void main(String[] args) throws IOException {
7674
// req.getAuthorization(); // Returns the authorization header
7775
// req.getMiddlewareContent("name"); // Returns data from middleware
7876
// req.pipe(new OutputStream() {...}); // Pipe the body to an outputstream
79-
});
77+
})
8078

81-
app.use(Middleware.cookieSession("f3v4", 9000));
79+
.use(Middleware.cookieSession("f3v4", 9000))
8280

83-
app.get("/session", (req, res) -> {
81+
.get("/session", (req, res) -> {
8482

8583
/*
86-
* CookieSession named his data "Session Cookie" which is
84+
* CookieSession named its data "SessionCookie" which is
8785
* an SessionCookie so we can Cast it.
8886
*/
8987
SessionCookie sessionCookie = (SessionCookie) req.getMiddlewareContent("SessionCookie");
@@ -93,18 +91,18 @@ public static void main(String[] args) throws IOException {
9391
if (sessionCookie.getData() == null) {
9492

9593
// Set the default data to 1 (first request with this session cookie)
96-
count = (Integer) sessionCookie.setData(1);
94+
count = (int) sessionCookie.setData(1);
9795
} else {
9896

9997
// Now we know that the cookie has an integer as data property, increase it
100-
count = (Integer) sessionCookie.setData((Integer) sessionCookie.getData() + 1);
98+
count = (int) sessionCookie.setData((int) sessionCookie.getData() + 1);
10199
}
102100

103101
// Send an info message
104102
res.send("You take use of your session cookie " + count + " times.");
105-
});
103+
})
106104

107-
app.listen(() -> System.out.println("Express is listening!"));
105+
.listen(() -> System.out.println("Express is listening!"));
108106
}
109107

110108
}

src/main/java/examples/PortMiddleware.java

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

33
import express.filter.Filter;
4-
import express.http.HttpRequest;
4+
import express.http.HttpRequestHandler;
55
import express.http.request.Request;
66
import express.http.response.Response;
77

8-
public class PortMiddleware implements HttpRequest, Filter {
8+
public class PortMiddleware implements HttpRequestHandler, Filter {
99

1010

1111
/**

src/main/java/express/Express.java

Lines changed: 62 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import express.filter.FilterLayerHandler;
88
import express.filter.FilterTask;
99
import express.filter.FilterWorker;
10-
import express.http.HttpRequest;
10+
import express.http.HttpRequestHandler;
1111

1212
import java.io.IOException;
1313
import java.net.InetSocketAddress;
@@ -22,11 +22,11 @@
2222
*/
2323
public class Express implements Router {
2424

25-
private final ConcurrentHashMap<String, HttpRequest> PARAMETER_LISTENER;
26-
private final ConcurrentHashMap<Object, Object> LOCALS;
25+
private final ConcurrentHashMap<String, HttpRequestHandler> parameterListener;
26+
private final ConcurrentHashMap<Object, Object> locals;
2727

28-
private final ArrayList<FilterWorker> WORKER;
29-
private final FilterLayerHandler HANDLER;
28+
private final ArrayList<FilterWorker> worker;
29+
private final FilterLayerHandler handler;
3030

3131
private Executor executor;
3232
private String hostname;
@@ -35,11 +35,11 @@ public class Express implements Router {
3535

3636
{
3737
// Initialize
38-
PARAMETER_LISTENER = new ConcurrentHashMap<>();
39-
LOCALS = new ConcurrentHashMap<>();
38+
parameterListener = new ConcurrentHashMap<>();
39+
locals = new ConcurrentHashMap<>();
4040

41-
WORKER = new ArrayList<>();
42-
HANDLER = new FilterLayerHandler(2);
41+
worker = new ArrayList<>();
42+
handler = new FilterLayerHandler(2);
4343

4444
executor = Executors.newCachedThreadPool();
4545
}
@@ -89,17 +89,18 @@ public boolean isSecure() {
8989
}
9090

9191
/**
92-
* Add an listener which will be called when an url with this parameter is called.
92+
* Add a listener which will be called when an url with this parameter is called.
9393
*
9494
* @param param The parameter name.
9595
* @param request An request handler.
9696
*/
97-
public void onParam(String param, HttpRequest request) {
98-
PARAMETER_LISTENER.put(param, request);
97+
public Express onParam(String param, HttpRequestHandler request) {
98+
parameterListener.put(param, request);
99+
return this;
99100
}
100101

101-
public ConcurrentHashMap<String, HttpRequest> getParameterListener() {
102-
return PARAMETER_LISTENER;
102+
public ConcurrentHashMap<String, HttpRequestHandler> getParameterListener() {
103+
return parameterListener;
103104
}
104105

105106
/**
@@ -111,7 +112,7 @@ public ConcurrentHashMap<String, HttpRequest> getParameterListener() {
111112
* @return The last value which was attached by this key, can be null.
112113
*/
113114
public Object set(String key, String val) {
114-
return LOCALS.put(key, val);
115+
return locals.put(key, val);
115116
}
116117

117118
/**
@@ -121,7 +122,7 @@ public Object set(String key, String val) {
121122
* @return The value.
122123
*/
123124
public Object get(String key) {
124-
return LOCALS.get(key);
125+
return locals.get(key);
125126
}
126127

127128
/**
@@ -144,9 +145,10 @@ public void setExecutor(Executor executor) throws IOException {
144145
*
145146
* @param router The router.
146147
*/
147-
public void use(ExpressRouter router) {
148-
this.HANDLER.combine(router.getHandler());
149-
this.WORKER.addAll(router.getWorker());
148+
public Express use(ExpressRouter router) {
149+
this.handler.combine(router.getHandler());
150+
this.worker.addAll(router.getWorker());
151+
return this;
150152
}
151153

152154
/**
@@ -156,67 +158,80 @@ public void use(ExpressRouter router) {
156158
* @param router The router.
157159
*/
158160
@SuppressWarnings("unchecked")
159-
public void use(String root, ExpressRouter router) {
161+
public Express use(String root, ExpressRouter router) {
160162

161163
router.getHandler().forEach(fl -> fl.getFilter().forEach(layer -> {
162164
((FilterImpl) layer).setRoot(root);
163165
}));
164166

165-
this.HANDLER.combine(router.getHandler());
166-
this.WORKER.addAll(router.getWorker());
167+
this.handler.combine(router.getHandler());
168+
this.worker.addAll(router.getWorker());
169+
170+
return this;
167171
}
168172

169-
public void use(HttpRequest middleware) {
173+
public Express use(HttpRequestHandler middleware) {
170174
addMiddleware("*", "*", middleware);
175+
return this;
171176
}
172177

173-
public void use(String context, HttpRequest middleware) {
178+
public Express use(String context, HttpRequestHandler middleware) {
174179
addMiddleware("*", context, middleware);
180+
return this;
175181
}
176182

177-
public void use(String context, String requestMethod, HttpRequest middleware) {
183+
public Express use(String context, String requestMethod, HttpRequestHandler middleware) {
178184
addMiddleware(requestMethod.toUpperCase(), context, middleware);
185+
return this;
179186
}
180187

181188
// Internal service to handle middleware
182-
private void addMiddleware(String requestMethod, String context, HttpRequest middleware) {
189+
private void addMiddleware(String requestMethod, String context, HttpRequestHandler middleware) {
183190
if (middleware instanceof FilterTask) {
184-
WORKER.add(new FilterWorker((FilterTask) middleware));
191+
worker.add(new FilterWorker((FilterTask) middleware));
185192
}
186193

187-
HANDLER.add(0, new FilterImpl(requestMethod, context, middleware));
194+
handler.add(0, new FilterImpl(requestMethod, context, middleware));
188195
}
189196

190-
public void all(HttpRequest request) {
191-
HANDLER.add(1, new FilterImpl("*", "*", request));
197+
public Express all(HttpRequestHandler request) {
198+
handler.add(1, new FilterImpl("*", "*", request));
199+
return this;
192200
}
193201

194-
public void all(String context, HttpRequest request) {
195-
HANDLER.add(1, new FilterImpl("*", context, request));
202+
public Express all(String context, HttpRequestHandler request) {
203+
handler.add(1, new FilterImpl("*", context, request));
204+
return this;
196205
}
197206

198-
public void all(String context, String requestMethod, HttpRequest request) {
199-
HANDLER.add(1, new FilterImpl(requestMethod, context, request));
207+
public Express all(String context, String requestMethod, HttpRequestHandler request) {
208+
handler.add(1, new FilterImpl(requestMethod, context, request));
209+
return this;
200210
}
201211

202-
public void get(String context, HttpRequest request) {
203-
HANDLER.add(1, new FilterImpl("GET", context, request));
212+
public Express get(String context, HttpRequestHandler request) {
213+
handler.add(1, new FilterImpl("GET", context, request));
214+
return this;
204215
}
205216

206-
public void post(String context, HttpRequest request) {
207-
HANDLER.add(1, new FilterImpl("POST", context, request));
217+
public Express post(String context, HttpRequestHandler request) {
218+
handler.add(1, new FilterImpl("POST", context, request));
219+
return this;
208220
}
209221

210-
public void put(String context, HttpRequest request) {
211-
HANDLER.add(1, new FilterImpl("PUT", context, request));
222+
public Express put(String context, HttpRequestHandler request) {
223+
handler.add(1, new FilterImpl("PUT", context, request));
224+
return this;
212225
}
213226

214-
public void delete(String context, HttpRequest request) {
215-
HANDLER.add(1, new FilterImpl("DELETE", context, request));
227+
public Express delete(String context, HttpRequestHandler request) {
228+
handler.add(1, new FilterImpl("DELETE", context, request));
229+
return this;
216230
}
217231

218-
public void patch(String context, HttpRequest request) {
219-
HANDLER.add(1, new FilterImpl("PATCH", context, request));
232+
public Express patch(String context, HttpRequestHandler request) {
233+
handler.add(1, new FilterImpl("PATCH", context, request));
234+
return this;
220235
}
221236

222237
/**
@@ -259,7 +274,7 @@ public void listen(ExpressListener onStart, int port) {
259274
try {
260275

261276
// Fire worker threads
262-
WORKER.forEach(FilterWorker::start);
277+
worker.forEach(FilterWorker::start);
263278

264279
InetSocketAddress socketAddress = this.hostname == null ? new InetSocketAddress(port) : new InetSocketAddress(this.hostname, port);
265280
if (httpsConfigurator != null) {
@@ -277,7 +292,7 @@ public void listen(ExpressListener onStart, int port) {
277292
httpServer.setExecutor(executor);
278293

279294
// Create handler for all contexts
280-
httpServer.createContext("/", exchange -> HANDLER.handle(exchange, this));
295+
httpServer.createContext("/", exchange -> handler.handle(exchange, this));
281296

282297
// Start server
283298
httpServer.start();
@@ -302,7 +317,7 @@ public void stop() {
302317
httpServer.stop(0);
303318

304319
// Stop worker threads
305-
WORKER.forEach(FilterWorker::stop);
320+
worker.forEach(FilterWorker::stop);
306321
}
307322
}
308323
}

0 commit comments

Comments
 (0)