Details
-
Feature
-
Status: Resolved (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
None
-
all
Description
Replace the built-in http-server of JS by Jetty
The built-in http-server of JobScheduler is more or less a rudimentary HttpServer. It is part of the core engine. A lot of more and more important features and capabilities are not implemented and therefore missing. Some of them are requested by some users in the meantime very often, e.g. connecting by https, audid trail by request logs, ldap, compression.
Instead of extending the built-in server component a decision was made to replace this by the open source web server jetty (read more at http://eclipse.org/jetty/).
Advantages and future possibilities (in a random sequence):
1) https-authentication
Additionaly to the presently http-authentication of JS a https-authentication will be possible. The configuration of the users credentials would be easier than with JS.
http://wiki.eclipse.org/Jetty/Feature/Realms
2) ease of implementing addtional JS-commands and answers
e.g. JSON, REST, -response
special context-handlers
user- and role-specific handling of request/commands
3) LDAP
http://wiki.eclipse.org/Jetty/Tutorial/JAAS#LdapLoginModule
http://jira.codehaus.org/browse/JETTY-471
4) request logs
Request logs are a record of the requests that the server has processed. There is one entry per request received, and commonly in the standard NCSA format so they can be conveniently analysed by tools like webalizer.
Jetty provides an implementation called NCSARequestLog which supports the NCSA format in files that can be rolled over on a daily basis.
The logback project offers another implementation of RequestLog interface providing very rich and powerful HTTP-access log functionality,
Alternatively, if neither of these options suits you, you can implement a custom request logger by implementing Jetty's RequestLog.java interface and plugging it in in similar fashion to the NCSARequestLog.
read more at http://irc.codehaus.org/display/JETTY/Logging+Requests
http://wiki.eclipse.org/Jetty/Feature/Jetty_Logging#Using_Access_Logging
5) using war-files with the Operations Center (JOC)
http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebComponents3.html
http://www.java-tips.org/other-api-tips/eclipse/how-to-make-war-file-in-eclipse.html
6) http-compression
http://serverfault.com/questions/279057/how-can-i-enable-gzip-compression-in-jetty
http://www.robertgering.de/tutorials/gzip-vom-servlet/
7) JSP
Jetty can act as an JSP server like tomcat (javax servlet container)). this will give us more flexibility in terms of new requests from our users, e.g. implementing new commands and/or new functionality.
8) Ease of Customizing
Presently the http-authentication of JS can be changed only by restarting the JS. With Jetty a restart will no longer needed.
9) RAP Rich Ajax Platform
Jetty can act as an Server for any RAP application. JSCockpit will be a RAP application.
10) support of BIRT reports
Jetty can be used as a BIRT Viewer. BIRT will be the favourite platform for reporting in JS.
11) Integration of ActiveMQ into the JobScheduler
http://docs.codehaus.org/display/JETTY/Integrating+with+ActiveMQ
More Jetty features: http://wiki.eclipse.org/Category:Jetty_Feature
A critical issue could be the real-time reporting of the logs to the web-browser. May be that this http://wiki.eclipse.org/Jetty/Feature/Continuations is a thinkfull alternative for the currently used method with JS server.
Attachments
Issue Links
- is related to
-
JS-1333 Retirement of JobScheduler built-in HTTP Server
- Unsupported