-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhybris-webserver.groovy
63 lines (50 loc) · 1.89 KB
/
hybris-webserver.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import groovy.json.*
import com.sun.net.httpserver.*
import de.hybris.platform.servicelayer.user.*
import de.hybris.platform.core.model.user.*
import de.hybris.platform.core.Registry
HttpServer server = HttpServer.create(new InetSocketAddress(8091),0);
server.createContext("/currentuser", new CurrentUserHandler(server:server));
server.createContext("/shutdown", new ShutdownHandler(server:server));
server.start();
log("Startup Server on 8091");
// to encapsule contenttype,status and this stuff
abstract class AdvancedHttpHandler implements HttpHandler {
public void answer200(HttpExchange exchange, String response) throws IOException {
exchange.responseHeaders['Content-Type'] = 'application/json'
exchange.sendResponseHeaders(200, response.length());
exchange.getResponseBody().write(response.bytes);
exchange.close();
}
}
class CurrentUserHandler extends AdvancedHttpHandler {
def server
public void handle(HttpExchange exchange) throws IOException {
//spring.getBean("userService", UserService.class);
def userService = Registry.getApplicationContext().getParent().getBean("userService", UserService.class);
def userModel = userService.getCurrentUser()
def builder = new JsonBuilder()
builder {
user userModel.getUid()
}
def response = builder.toString()
answer200(exchange,response);
}
}
class ShutdownHandler extends AdvancedHttpHandler {
def server
public void handle(HttpExchange exchange) throws IOException {
def builder = new JsonBuilder()
builder {
success true
msg "Shutting down server..."
}
def response = builder.toString()
answer200(exchange,response);
server.stop(5)
}
}
def log(String s) {
println(s)
Logger.getLogger("hybris-groovy-webserver").info(s)
}