Files
EWF/ChangeLog
2012-05-14 21:41:43 +02:00

1535 lines
46 KiB
Plaintext

2012-05-14 Jocelyn Fiat
Rather use (READABLE_)STRING_GENERAL for argument instead of _8 or _32
variant Better design to set the WSF_REQUEST.path_parameters especially
handle the case where the request goes trought more than one route (could be
the case when using WSF_ROUTING_HANDLER)
Updated URI Template to follow official RFC6570
2012-05-07 Jocelyn Fiat
Reviewed WSF_REQUEST.item (..) and items to look into Form, Query, and Path
(cookie are excluded for security) Added WSF_REQUEST.path_parameter (a_name):
detachable WSF_VALUE - fill path_parameters using
`import_raw_path_parameters" when executing the route - reset to previous
value with reset_path_parameters (..), just in case the request is executed
via severals routes.
2012-05-04 Jocelyn Fiat
Reverted back to export upload_data and upload_filename to ANY (and related
features)
Removed HTTP_CLIENT_SESSION.post_multipart .. because it was not doing what
the name might evoque Restrict export of
HTTP_CLIENT_REQUEST_CONTEXT.upload_data and upload_filename (and related) to
.._SESSION and .._REQUEST this is mainly internal data, and is more about
implementation than interface
Now the http_client will send the form parameters urlencoded if this is
possible (instead of multipart form data) Note for now, the library does not
support sending file and form parameters at the same time.
2012-05-03 Jocelyn Fiat
Fixed typo in .ecf .. curl instead of cURL
Added geant scripts to compile EWF
Improved the libcurl implementation of http_client by adding
HTTP_CLIENT_SESSION.is_debug: BOOLEAN if True, this display verbose debug
information in console Implemented uploading of file for PUT and POST
requests Refactored LIBCURL_HTTP_CLIENT_REQUEST to free used pointer, and
also ease extension of the class if needed. Updated cURL library with
addition of {CURL_EXTERNALS}.slist_free_all (..)
2012-05-02 Jocelyn Fiat
do not use implicit conversion from HTTP_CONTENT_TYPE
Fixed wrong signature should be READABLE_STRING_32 instead of _8
Also removing the implicit conversion from STRING to HTTP_*_TYPE
Removed implicit conversion from HTTP_CONTENT_TYPE to STRING_8 because it
could be a source of bug due to hidden conversion (and parameters) Applied
changes to autotest cases Cosmetic
2012-04-30 Jocelyn Fiat
Added comments Added `url' to compute the url from base_url, path and query
parameters
Fixed error in URL encoding, according to the RFC3986, space should not be
encoded with '+' but with percent encoding.
Fixed signature issue, the argument `name' should be READABLE_STRING_32
Code cleaning
Added specific helper function related to `charset' parameter
2012-04-27 Jocelyn Fiat
added postcondition status_reason_phrase_unset to `set_status'
cosmetic
2012-04-13 Jocelyn Fiat
Fixed a last minute regression due to removal REQUEST.chunked_input
Added WSF_ROUTER.pre_route_execution_actions: ACTION_SEQUENCE [like route]
This way, one can add logger hook to router, to see which "route" was taken
by the request.
Made WGI_CHUNKED_INPUT_STREAM inherits from WGI_INPUT_STREAM Merged
REQUEST.input and REQUEST.chunked_input Now REQUEST.input handles directly
the chunked transfer encoding, or the non chunked. Kept
REQUEST.is_chunked_input since it matters that Content-Length is 0 even if
there are input (chunked) data.
2012-04-12 Jocelyn Fiat
Fixed compilation of samples
Fixed compilation
Now WGI_RESPONSE.set_status_code (..) has a new argument to pass optional
custom reason phrase. This is a minor breaking change (but prior to the first
release, so acceptable) And then it is now possible to precise a custom
reason phrase (useful for 4xx and 5xx response) At the WSF_RESPONSE level,
the status code is now sent only when the header are sent. thus, it is
possible to change the status code as long as no header is sent. (in the
future, we should also try to delay the sending of headers) Removed
WGI_RESPONSE.put_header_lines (..) which was not used, and WGI is not meant
to provide such user friendly features Now this is available directly on
WSF_RESPONSE
2012-04-06 Jocelyn Fiat
updated to EiffelWebFramework/EWF
sync with json lib.
Sync with wiki
Use https://github.com/EiffelWebFramework/EWF.git as master
2012-04-05 Jocelyn Fiat
Added `transfered_content_length' to WSF_RESPONSE to provide the information
to application This can be used to build logs for instance.
Relaxed WSF_REDIRECTION_RESPONSE.set_content (.., ..) to allow Void for
content type in order to use the one set in header or the default one.
Removed default handler for WSF_ROUTER Added WSF_ROUTE to replace a TUPLE
[H, C] WSF_ROUTER.route (req): detachable WSF_ROUTE WSF_ROUTER.execute_route
(a_route, req, res) To help usage of Routers Remove WSF_HANDLER_CONTEXT
obsolete features. Added comments
2012-03-27 Olivier Ligot
[REM] Remove unneeded precondition
[IMP] Ignore *.swp files
2012-04-02 Jocelyn Fiat
removed obsolete message.
2012-03-27 Olivier Ligot
[REM] Remove unneeded precondition
[IMP] Ignore *.swp files
2012-03-23 Jocelyn Fiat
Renamed same_media_type as same_simple_type Added comments
updated tests.ecf
Added HTTP_MEDIA_TYPE (maybe it will just replace the HTTP_CONTENT_TYPE
later) renamed .media_type as .simple_type for now allow more than one
parameters
Use media_type as replacement for type_and_subtype_string in
HTTP_CONTENT_TYPE
Added class HTTP_CONTENT_TYPE to help manipulation of Content-Type value Now
WSF_REQUEST return a HTTP_CONTENT_TYPE if available Adapted WSF_MIME_HANDLER
to use this new class Added one manual autotest to test MIME handler
2012-03-21 Jocelyn Fiat
in WSF_RESPONSE, `put_header' now call `put_header_text' Removed unused local
variable
Fixed very bad mistake where no Result was ever set for WSF_REQUEST.item (..)
2012-03-20 Jocelyn Fiat
fixed compilation issue (typo)
Do not try to compile_all in "dev" folder
Reverted a previous change, we should not truncated Content-Type after ; In
the case of multipart/form-data the parameter "boundary=" is essential
Use WSF_DEFAULT_SERVICE for the test echo server
Fixing compilation of specific example using the WGI connector directly
Added WSF_SERVICE.to_wgi_service to ease direct integration with existing WGI
components
Relaxed access to `send_to', now it is exported again to avoid breaking
existing code.
remove unused local variable
WSF_REQUEST.content_type should keep only the relevant part of the content
type and forget about the eventual parameters (charset, name) ... note: it
is possible to query meta_string_variable ("CONTENT_TYPE") to get the
complete Content-Type header
Added HTTP_HEADER.(put|add)_content_type_with_parameters (...)
removed obsolete
Implemented WSF_RESPONSE.put_error (...) and related Added
WSF_RESPONSE.put_character Renamed WGI_OUTPUT_STREAM.put_character_8 as
put_character to follow style of put_string (and not put_string_8)
Refactored the WSF_DEFAULT_SERVICE_LAUNCHER Added WSF_DEFAULT_SERVICE to be
more user friendly Splitted the wsf/default/ libraries to have
wsf/connector/... and being able to handle more than one connector in the
same application
Moved mime handler classes under wsf/src/mime/
2012-03-19 Jocelyn Fiat
removed unwanted rescue clause
Updating EWSGI specification classes
Removed WGI_RESPONSE.write (..) Replaced any internal call to
WGI_RESPONSE.write () by the associated implementation (i.e
output.put_string (...) ) Added WGI_OUTPUT_STREAM.put_crlf Renamed
WSF_RESPONSE.put_response (a_message) as `send (a_message)'
WSF_RESPONSE_MESSAGE.send_to (res) is now exported only to WSF_RESPONSE
2012-03-19 Berend de Boer
Avoid another indirection.
status must be set, else WGI_SERVICE.execute will report the postcondition
violation. Conflicts: library/server/wsf/router/wsf_handler.e
Minor code cleanup/typo fix.
2012-03-17 Berend de Boer
Move wgi_service spec to its own directory else I get a class conflicts with
compile_ise.ecf generated by gexace.
2012-03-19 Jocelyn Fiat
Improved comment in WSF_RESPONSE.put_response (..) Added
WSF_REDIRECTION_RESPONSE class
Added WSF_RESPONSE_HANDLER based on WSF_RESPONSE_MESSAGE The descendant has
to implement the function response (ctx: C; req: WSF_REQUEST):
WSF_RESPONSE_MESSAGE Added related features and class in WSF_ROUTER to be
able to use agent easily.
Refactored WSF_HANDLER_CONTEXT - removed path_parameter - added `item' to
include WSF_REQUEST.item - marked obsolete `parameter' The goal is to remove
confusion, remove URI_TEMPLATE specific `path_parameter' and provide a way to
use ctx.item (..) to also include meta variable, query, form, ... items
Use local variable to speed up access to `input'
2012-03-16 Jocelyn Fiat
Applied wsf_extension creation, and classes moved from wsf to wsf_extension
Created wsf_extension, and moved some classes from wsf to wsf_extension
WSF_HANDLER_HELPER WSF_RESOURCE_HANDLER_HELPER WSF_HANDLER_ROUTES_RECORDER
applied removal of HTTP_HEADER.put_status (..)
Removed HTTP_HEADER.put_status (...) It is not recommended to send the status
code as part of the HTTP Header, so let's remove this ambiguity and do not
encourage EWF user to use it
Major renaming, adopt the WSF_ prefix for all classes under "wsf", and
simplify some class names Removed in WGI_INPUT_STREAM, the assertion
"same_last_string_reference" Copyright updates
2012-03-13 Jocelyn Fiat
Fixed compilation of draft/library/server/request/rest/tests/.. Note the
"rest" library will not be maintained since this is not REST.
precise that library/server/request/router is now part of "wsf" library and
not anymore independant library.
Nino connector: - fixed issue related to `ready_for_reading' now use the
`try_...' variant - for now Nino does not support persistent connection, then
we have to respond with "Connection: close" REQUEST_FILE_SYSTEM_HANDLER: -
added not_found_handler and access_denied_handler, so that the user can
customize related response WSF_REQUEST and WSF_VALUE: - modified how
uploaded file are handled, fixed various issues, and added WSF_UPLOADED_FILE
(it is a WSF_VALUE) WSF_VALUE: - added change_name (a_name: like name) -
added url_encoded_name to other WSF_values WSF_REQUEST: - added `destroy' to
perform end of request cleaning (such as deleting temp uploaded files) -
renamed `raw_post_data_recorded' as `raw_input_data_recorded', and related
feature - do not store the RAW_POST_DATA in meta variable anymore, but in
WSF_REQUEST.raw_input_data is asked Added WSF_HTML_PAGE_RESPONSE to help
user WSF_REPONSE.redirect_... now use "temp_redirect" as default instead of
"moved_permanently" which is specific usage Removed many obsolete features.
2012-02-29 Jocelyn Fiat
use https:// url for git submodules
Added assertions to catch if route mapping does not already exists
2012-02-28 Jocelyn Fiat
Synchronized with nino and json library
2012-02-17 jvelilla
Refactor REQUEST_RESOURCE_HANDLER_HELPER to figure out the transfer encoding:
Chunked. Added a new method to retrieve_data independently if the transfer is
chunked or not. Updated ORDER_HANLDER to use this new feature. Sync with
Jocelyn repo
2012-02-16 Jocelyn Fiat
Minor correction, to avoid returning 200 as status code, when the client can
not connect
2012-02-15 Jocelyn Fiat
fixed compilation
sync with cURL library
Fixed error visitor due to recent signature changes
renamed (add|remove)_synchronized_handler as (add|remove)_synchronization
Removed tests target from encoder(-safe).ecf (now there is a tests-safe.ecf
in folder tests)
Fixed ERROR_HANDLER.destroy Fixed and export
ERROR_HANDLER.remove_synchronized_handler Added comments Added associated
autotests
2012-02-14 Jocelyn Fiat
Better signature for encoders Split library .ecf and the autotest .ecf
added postcondition to ensure the body string set to the response, is the
same reference this is important, since sometime we just do rep.set_body (s)
s.append_string ("..")
Added DEBUG_OUTPUT to ERROR, since this is convenient during debugging
Added notion of synchronization between error handler this is convenient to
integrate two components using their own ERROR_HANDLER (not sharing the same
object)
use WSF_PAGE_RESPONSE, instead of reimplementing it ourself
2012-02-13 Jocelyn Fiat
added a JSON encoder test case
2012-02-10 Olivier Ligot
[FIX] libfcgi.so location On Ubuntu 10.04 LTS, libfcgi.so is in /usr/lib
instead of /usr/local/lib
2012-02-08 Jocelyn Fiat
added a case in test_json_encoder
2012-02-08 unknown
libcurl: Applied a workaround to avoid issue on Win32 (see
LIBCURL_HTTP_CLIENT_REQUEST.apply_workaround) Separated the
http_client-safe.ecf and test-safe.ecf Added
HTTP_CLIENT_SESSION.set_max_redirects Fixed broken test due to formatting
trouble.
2012-02-08 Jocelyn Fiat
fixed http_client tests
2012-02-08 jvelilla
Updated content
2012-02-07 Jocelyn Fiat
Better code to test similar functions but with chunked input
Improved the WSF_PAGE_RESPONSE to be more flexible and allow to change some
values as expected.
Added support for chunked input data (see Transfer-Encoding: chunked)
Added HTTP_HEADER.append_header_object and append_array. This is helpful to
"merge" two HTTP_HEADER and provide user friendly features
Added proxy, at least to make it is possible to use http://fiddler2.com/ to
inspect the traffic.
2012-02-01 Jocelyn Fiat
Fixed wrong code for postcondition on HTTP_HEADER.string Patch provided by
Paul-G.Crismer
removed unwanted set_status_code, since we already use put_header to set the
status code.
Eventually fixing trouble with c_strlen being over capacity (added this for
testing, and while waiting a fix from EiffelcURL)
Improved redirect_now_custom to allow custom status code, custom header, and
custom content
2012-01-31 Jocelyn Fiat
Fixed usage of lst[] in web form, now we are url-decoding the name because
the [] could escaped... Fixed bad code for assertion related to variable
url-encoded name
added REQUEST_HANDLER_CONTEXT.string_array_path_parameter (...) to help user
handling list/array parameters fixed postcondition
WSF_REQUEST.set_meta_string_variable ...
2012-01-25 Jocelyn Fiat
Make sure to return a response Added precondition to check URI_TEMPLATE is
valid
2012-01-23 Jocelyn Fiat
Fixed issue with WSF_FILE_RESPONSE not setting the status code Added
Last-Modified
Fixed wrong code for postcondition in unset_orig_path_info
added "conversion" to ease the use of HTTP_HEADER
2012-01-20 Jocelyn Fiat
fixed compilation (was not up to date with tests.ecf)
Corrected remaining issue related to recent addition of
REQUEST_ROUTER.make_with_base_url And applied removal of format_name and
format_id, and replaced by accepted_format_name, ...
Do not add again ctx.headers, since it is already "imported" during the
creation of Current request (see HTTP_CLIENT_REQUEST.make)
Removed any "format" related query from router lib, this is too application
specific to be there. Better handling of base_url for REQUEST_ROUTER
2012-01-19 Jocelyn Fiat
separate library .ecf and tests .ecf merged tests .ecf for draft 05 and
current implementation
Fixed WSF_REQUEST.script_url (..) for clean path Added related autotests
2012-01-17 Jocelyn Fiat
Don't forget to put Content-Length: 0 for redirect without any content
export handler from REQUEST_ROUTER
REQUEST_ROUTER now inherit from ITERABLE [..]
Send the Status code, as an header line Status: code reason
use READABLE_STRING_8 instead of STRING_8
According to http://www.fastcgi.com/docs/faq.html#httpstatus send the Status
code, as an header line Status: code reason
2012-01-16 Jocelyn Fiat
Do not send any Status line back to the FastCGI client
2012-01-13 Jocelyn Fiat
Synchronized with ejson library Cleaned JSON_ENCODER
2012-01-12 Jocelyn Fiat
Added JSON_ENCODER
2012-01-09 Jocelyn Fiat
removed obsolete call on `WSF_RESPONSE.write_..' by using the up-to-date
`WSF_RESPONSE.put_..'
2012-01-06 Jocelyn Fiat
HTTP_HEADER: - added put_last_modified - added RFC1123 http date format
helper - added put_cookie_with_expiration_date as DATE_TIME REQUEST: added
`execution_variable' to provide a way to keep object attached to the request
and indexed by a string. A typical usage is a SESSION object
2011-12-21 jvelilla
Update examples/restbucksCRUD/readme.md
2011-12-18 Jocelyn Fiat
added REQUEST.execution_variables ... to provide a solution to store data
during request execution could be used for SESSION, or any "shared" data
inside the same Request
applied write_ as put_ renaming to examples
2011-12-15 Jocelyn Fiat
Use put_ instead of write_
various minor changes
use /usr/lib/libfcgi.so instead of /usr/local/lib/libfcgi.so
Applied renaming from write_ to put_
Renamed write_ feature as put_
Fixed stupid mistake in {WGI_NINO_INPUT_SREEAM}.end_of_input
Fixed typo and missing uri_template reference for draft rest library
Now the 'router' library is part of 'wsf' Move hello_routed_world under
tests/dev since it was not really an example, but more a dev workspace/test
Made DEFAULT_SERVICE_LAUNCHER more flexible for the user.
2011-12-15 jvelilla
Update read_trailer feature.
Initial implementation of wgi_chunked_input_stream as a wrapper of
wgi_input_stream
2011-12-14 Jocelyn Fiat
Use port 9090 for restbuck server mainly to avoid using 80 or 8080 which are
often already used (by current webserver, or even skype, or jenkins, or ...)
Forgot to add make_and_launch_with_options to the creation procedures
Added DEFAULT_SERVICE_LAUNCHER.make_and_launch_with_options Added
WSF_RESPONSE.redirect_now_with_content (...) Updated hello_routed_world ..
mainly example use to test/develop... not really a nice example
2011-12-13 Jocelyn Fiat
Updated readme on how to get source code
added head and bottom value in WSF_FILE_RESPONSE, to enable the user to set a
head and bottom part easily
2011-12-12 Jocelyn Fiat
avoid infinite rescue due to internal error or user code not dealing well
with socket disconnection
Removed dotnet target for now
Fixed http_client autotest code
Break inheritance from WGI_RESPONSE, since it is not flexible for future
improvement.
Fixed HTTP client callers
Renamed DEFAULT_SERVICE as DEFAULT_SERVICE_LAUNCHER
Fixed WSF_FILE_RESPONSE and added WSF_FORCE_DOWNLOAD_RESPONSE
Removed any (put|write)_file_content from the WSF_ or WGI_ OUTPUT classes Now
DEFAULT_SERVICE has to be created instead of inherited. - This seems to be
better for new user, and this avoid potential conflict and difference when
inheriting between the various DEFAULT_SERVICE implementation. - remember
that DEFAULT_SERVICE, is mainly to help the user to build its very first
service. Use READABLE_STRING_8 as argument whenever it is possible. Added
WSF_RESPONSE_MESSAGE, and WSF_RESPONSE.put_response (a_response_message) Now
WSF_RESPONSE inherit from WGI_RESPONSE
2011-12-10 jvelilla
Update restbuck client, create and read an order. Update JSON converter, the
id is not important, applied the DRY principle. Update the ORDER_HANDLER to
use the meta_string_variable instead of meta_variable from req. Fix, the key
in meta_variable_table, use c.key instead of c.item
Update examples/restbucksCRUD/readme.md
2011-12-09 jvelilla
Update the restbuck_client, still work in progress. Update restbuck_server,
remove unused class in inherit. Update libcurl_http_client_request, to parse
context headers before the execution. Update wgi_input_stream, commented
precondition.
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
Update examples/restbucksCRUD/readme.md
2011-12-08 jvelilla
Update examples/restbucksCRUD/readme.md
Updated documentation
Updated restbucksCRUD documentation
Added basic two basic examples, refactor rename restbucks to restbucksCRUD
2011-12-07 jvelilla
Sync Jocelyn repo
2011-12-03 Jocelyn Fiat
Update README.md
Update README.md
Update README.md
fixed markdown syntax
2011-12-02 Jocelyn Fiat
Remove any useless library include from this .ecf we just need
default_"connector", router, wsf and http
Fixed compilation issue for CGI and libFCGI connector due to recent changes
in interface (use READABLE_STRING_8)
2011-12-01 Jocelyn Fiat
Integrated new system to handle form_parameter, input_data in relation with
MIME handling This is not yet clear how to let the user precise its own MIME
handler but it is in progress
fixed remaining issue or useless code to set http environment variable
Fixed stupid error where we were concatenating ... value by error
Added WSF_RESPONSE.write_chunk (s: ?READABLE_STRING_8) to help user sending
chunk with "Transfer-Encoding: chunked"
Synchronized with Nino
Fixed WSF_RESPONSE.redirect* features
sync with Nino, call to put_readable_string_8
Synchronized with EiffelWebNino
relative path for README link
2011-12-01 jvelilla
Update library/protocol/CONNEG/README.md
Update library/protocol/CONNEG/README.md
Updated Conneg library, added test cases
2011-11-30 jvelilla
Fixed minor issue, added test cases to check language negotiation.
Update conneg library and test cases
2011-11-25 Jocelyn Fiat
Fixed example due to recent interface changes
- (WGI|WSF)_RESPONSE(*) renamed write_headers_string as write_header_text -
HTTP_HEADER.string does not have the ending CRLFCRLF .. but just CRLF -
WGI_RESPONSE.write_header_text has the responsibility to handle the last
blank line CRLF (separating the header from the message) - HTTP_HEADER.string
does not set anymore a default content type as text/html - added
WGI_RESPONSE.write_header_lines (ITERABLE [TUPLE [name,value:
READABLE_STRING_8]] mainly as an helper method, this way the WGI user does
not have to know about the CRLF end of line
Applied recent renaming from WGI_RESPONSE_BUFFER as WGI_RESPONSE
updated WGI specification
Added missing wgi_connector
added "redirect" helper feature to WSF_RESPONSE
Added `{WGI_REQUEST}.wgi_*' function to WSF_REQUEST
rename `application' as `service'
Use HTTP_HEADER instead of WSF_HEADER (WSF_HEADER is kept for convenience and
existing code)
better script to check compilation and tests
Moved implementation of WSF_HEADER to HTTP_HEADER in the http library
Simplified EWSGI interfaces Renamed WGI_RESPONSE_BUFFER as WGI_RESPONSE to
avoid confusion Removed EWF_HEADER and removed related caller from WGI
implementation, now this is only part of WSF library Added wgi_version,
wgi_implementation and wgi_connector to the WGI_REQUEST interface to give
more information to the user Added back WGI_CONNECTOR to WGI specification,
mainly because of `{WGI_REQUEST}.wgi_connector' simplified WGI_CONNECTOR to
contain for now only `name' and `version' if the implementation of connector
inherit from WGI_CONNECTOR (recommended) this might gives more access to the
user using a reverse assignment for specific needs (but this usage is not
recommended due to portability issue on other connector) Removed useless
connector.ecf since now EWF/WGI library provides the helper classes
2011-11-23 Jocelyn Fiat
Fixed sample example config file after recent location change for "rest" lib
Improved run_CI_tests.py and include the compile_all call directly in the
python script. If compile_all tool supports -keep ... let's use it. (recent
addition)
fixed rest(-safe).ecf due to recent location change
Updated README.md in relation with "rest" lib relocation
Move "rest" library under "draft/..." since it is more an experiment rather
than a real REST library
2011-11-21 Jocelyn Fiat
Update draft/README.md
updated Eiffel libfcgi README file
Added scripts to help building the libfcgi.dll and .lib from modified source
of libfcgi Extracted into "libfcgi" only the files needed to compile the
Windows .dll and .lib
Added scripts to help building the libfcgi.dll and .lib from modified source
of libfcgi
updated README to apply 'ext' renamed as 'contrib'
2011-11-18 Jocelyn Fiat
fixed compilation for tests.ecf
fixed typo
Updated "draft" folder which contain potential future addition to EWF
Added "draft" folder to contain potential future addition to EWF
restructured CONNEG library fixed various issue in .ecf files
2011-11-17 jvelilla
Initial import CONNEG library, support server side content negotiation.
2011-11-17 Jocelyn Fiat
Rename "ext" as "contrib" in compile_all.ini as well no need to test the code
coming from other projects.
Renamed "ext" folder as "contrib" folder and reorganized a little bit Renamed
any *_APPLICATION as *_SERVICE mainly because those components such as
WSF_APPLICATION, renamed as WSF_SERVICE are not always the main application
entry, and "service" describe them better Minor implementation change in
WSF_REQUEST Cosmetics
2011-11-16 Jocelyn Fiat
handle last run failure
Added request method PATCH even if not really used for now, it might in the
future
Do not print command during script execution
fixed indentation in python script
Added information output to run_CI_tests.py
updated run_CI_tests.py
updated run_CI_tests.py
updated run_CI_tests.py
updated run_CI_tests.py
removed unused local variables
added a python script to be use inside jenkins CI server (experimental for
now)
2011-11-14 Jocelyn Fiat
cosmetic
cosmetics
Added various README.md (using the markdown syntax)
updated README with links to sub READM.md
sync with Eiffel Web Nino
Added default WSF_APPLICATION for libfcgi connector
code removal
Updated libfcgi source code for Windows AND Linux. Cleaning some code and
feature clauses.
Changed the WGI_INPUT_STREAM and WGI_OUTPUT_STREAM interfaces main changes
for existing code `read_stream' is renamed `read_string'
2011-11-09 Jocelyn Fiat
Added is_request_method (STRING): BOOLEAN to help users
2011-11-07 Jocelyn Fiat
updated readme with better way to get the source code recursively
added script to build archive for download area
2011-11-04 Jocelyn Fiat
sync with Eiffel Web Nino
sync with nino and applied changes to connector
Use recent changes from Nino, to get access to the launched and port
information. Quite useful when launching using port=0 to use a random free
port. This is great for testing, this way we can run many tests in the same
time without any port blocking.
2011-11-03 Jocelyn Fiat
applied recent changes from Nino
2011-11-02 Jocelyn Fiat
removed compliance on ewsgi, since now we target WSF applied recent changes
related to WSF_VALUE
Safer interface for WSF_VALUE, when related to STRING value
sync with submodules
renamed WSF_(.*)_VALUE as WSF_$1
2011-10-31 Jocelyn Fiat
Fixed obsolete calls, and compilation error.
fixed path to cURL.ecf file, using the correct uppercase
Fixed missing syntax="provisional" , this was preventing compiling with
"across" statements
Better implementation to get http header for http_client, and to get list of
header entries by key,value
updated instructions related to submodules
Fixed remaining 6.8 vs 7.0 compilation issue related to UTF8_(URL_)ENCODER
removed unused local variable
Added convenient features to BASE64 - decode_string_to_buffer (v: STRING;
a_buffer: STRING) - decode_string_to_output_medium (v: STRING; a_output:
IO_MEDIUM)
removed unused local variable
Fixed code to be compilable with EiffelStudio 6.8 and 7.0 (due to recent
change in UNICODE_CONVERSION) UNICODE_CONVERSION
2011-10-28 jvelilla
Added headers to response in HTTP_CLIENT_RESPONSE
2011-10-27 Jocelyn Fiat
use '%/123/' syntax, to make sure no editor replace the accentued characters
removed unwanted .rc
Fixed a previously character changes in WSF_REQUEST (related to
safe_filename), and modified the implementation to use inspect Fixed the
request_content_type computation Cosmetic in REQUEST_RESOURCE_HANDLER_HELPER
added script to update current git working copy and submodules recursively
cosmetic, or minor changes
2011-10-27 jvelilla
Added eel and eapml in EWF libraries. Removed them from gitmodule
2011-10-26 jvelilla
Updated request resource handler. TODO: implement Content-Negotiation
2011-10-24 Jocelyn Fiat
Start index for list[]=a&list[]=b ... from 1 instead of 0 Stick to Eiffel
spirit
Added visitor patterns to WSF_VALUE Handling UTF-8 unencoding for WSF_VALUE
... Added WSF_TABLE_VALUE to handle list[]=a&list[]=b ... Library encoder:
added UTF8 facilities
missing implementation (forgot to uncomment)
2011-10-23 jvelilla
Added eel and eapml modules
Update delete method to hanlde method not allowed. Added method not allowed
to request resource handler helper class. Update gitmodules
2011-10-21 Jocelyn Fiat
Applied recent changes on WGI_ and WSF_ Moved classes away from ewsgi,
restructured, cleaned
Continued reducing WGI and move implementation to WSF (Web Server Framework)
Removed many usage of READABLE_STRING_GENERAL in favor to READABLE_STRING_8
to avoid potential nasty issues in user's code URI-template is working only
with STRING_8, then changed any _GENERAL or _STRING_32 to _STRING_8
2011-10-19 Jocelyn Fiat
First try to get a limited WGI_ and use WSF_ as default framework
2011-10-21 jvelilla
Update Restbucks example: Conditional GET, PUT. Added a response method to
support resource not modified. Added a ETAG_UTILS class to calcule
md5_digest. Added ext libs eel and eapml.
2011-10-19 Jocelyn Fiat
Used object test
removed useless local variable
2011-10-14 Jocelyn Fiat
fixed cgi and libfcgi connectors due to recent changes from WGI_APPLICATION
Removed handling of internal error from WGI_APPLICATION And for now added it
into nino connector
Fixed issue with index in uri template matcher
Added HTTP_FILE_EXTENSION_MIME_MAPPING Added REQUEST_FILE_SYSTEM_HANDLER to
the router library Added file system handler in "hello_routed_world" example
2011-10-13 jvelilla
Added handle_resource_conflict_response feature to handle 409 reponse,
Cosmetic.
2011-10-12 Jocelyn Fiat
Added data and file for post and put request methods
Using Transfer-Encoding: chunked in example to send response progressively
sync with submodules
removed unwanted code
applied recent changes on HTTP_REQUEST_METHOD_CONSTANTS
cosmetic
Addition to "http" library, separated constants into - HTTP_MIME_TYPES -
HTTP_HEADER_NAMES - HTTP_REQUEST_METHODS - HTTP_STATUS_CODE (already
exists) Do not set the "Status" header when using
WGI_RESPONSE_BUFFER.write_header (...) Cosmetic
2011-10-11 Jocelyn Fiat
Fixed errors recently introduced
sync with latest JSON
2011-10-11 jvelilla
Update order_handler, fix json_order_converter
2011-10-11 Jocelyn Fiat
Use local curl if compiler is < 7.0.8.7340 otherwise, use ISE_LIBRARY cURL
Temporary fixed issue of using modified cURL (which is cURL provided with
EiffelStudio 7.0) This changes will be reverted in the future
2011-10-10 Jocelyn Fiat
Updated readme related to mirrored Eiffel cURL library
added submodule ext/ise_library/curl to use the updated Eiffel cURL from
ISE.
cosmetic
2011-10-07 Jocelyn Fiat
added http diagrams found on the web
Added the possibility to specify the supported content types Added FIXME
Cosmetic
Added "Date:" helper feature in EWF_HEADER Added license.lic to restbuck
example, and mainly copyright to Javier Use HTTP_STATUS_CODES Minor
improvements using object tests Cosmetic (indentation, ..)
2011-10-06 Jocelyn Fiat
Added a first simple test client to test the restbuck client
added support for data in POST request
2011-10-06 jvelilla
Added REQUEST_RESOURCE_HANDLER_HELPER class to contain common http method
behavior. Updated ORDER_HANLDER to use this new class.
2011-10-05 Jocelyn Fiat
Added `base_url' for REQUEST_ROUTER (and descendants) Fixed implementation
of REST_REQUEST_AGENT_HANDLER to avoid wrong path in inherited routine. Allow
to build a URI_TEMPLATE from another URI TEMPLATE, this way, if later we have
more attribute (status or settings) to URI_TEMPLATE, we'll be able to change
the `template' without breaking the settings
added missing call to pre_execute and post_execute
Fixed missing http:// in absolute URL
remove pre_execute, and post_execute, and make process_request frozen this
way, the user won't be tempted to redefine feature not being part of pure
EWSGI interface.
better argument name, to precise the timeout is in second also in comment.
2011-10-04 Jocelyn Fiat
Fixed agent handler for rest library
fixed inheritance and precursor bad usage.
2011-10-03 jvelilla
Updated support for PUT. Now the example support GET, POST, PUT, DELETE.
2011-09-28 Jocelyn Fiat
fixed compilation for ewsgi/tests/tests.ecf file
Made WGI_VALUE.name as READABLE_STRING_32 .. otherwise it is a pain to
manipulate. Changed return type of meta_variable to be WGI_STRING_VALUE ...
since the meta variable can not be anything else. Made sure REQUEST_URI
starts with one and only one slash Internal implementation: the _table now
compares object Removed SELF variable ... at least for now Be sure to provide
a REQUEST_URI even if the underlying connector does not.
cleaned http_client configuration files
Added library/library.index
restructured ewsgi to avoid too many sub cluster
2011-09-28 jvelilla
Updated Restbucks examples, handle not method allowed in a better way, added
the readme file.
2011-09-26 Jocelyn Fiat
fixed compilation of rest example
fixed typo
Changed ITERATION_CURSOR [WGI_VALUE] into ITERABLE [WGI_VALUE] for
WGI_REQUEST.*parameters* and similar Applied recent changes on EWF_HEADER
2011-09-23 Jocelyn Fiat
Updated changelogs.txt sync with nino and doc
Added AutoTest simple cases for ewsgi using Nino web server
Fixing issue with experimental WGI_MULTIPLE_STRING_VALUE Fixed issue with
RAW_POST_DATA
Removed `put_redirection' and replaced by `put_location' Removed useless code
in some features
Use READABLE_STRING(_*) instead of just STRING(_*)
Added feature to shutdown the Nino http server
Added error reporting in HTTP_CLIENT_RESPONSE Added missing
set_connect_timeout
2011-09-23 jvelilla
Added validations.
2011-09-22 Jocelyn Fiat
Added code to create an HTTP_AUTHORIZATION from the client side as well. So
now we can either interpret an HTTP_AUTHORIZATION or build one
HTTP_AUTHORIZATION So far , only Basic auth is supported.
Made all libraries compilable in any mode (voidsafe or not) Fixed related
examples
2011-09-22 jvelilla
Initial import, work in progress restbuck example. Only support create a
resource
2011-09-21 Jocelyn Fiat
Fixed issue where Content-Type and Content-Length were translated into
HTTP_CONTENT_TYPE and HTTP_CONTENT_LENGTH instead of just CONTENT_TYPE and
CONTENT_LENGTH
better assertion to ensure `base' is a valid base url
synch with Nino
better return type for http client functions added helper features
2011-09-20 Jocelyn Fiat
fixed case sensitive path
missing -safe.ecf config file for http_client
Now using READABLE_STRING_... type
Added simple HTTP client. For now the implementation is using Eiffel cURL
library. It requires Eiffel cURL coming with next EiffelStudio 7.0 (or from
eiffelstudio's repo from rev#87244 )
2011-09-16 Jocelyn Fiat
Fixed issues in WGI_REQUEST's invariant Fixed issues with guessing the
default format for REST handling Fixed issue with .._ROUTING_.. component.
Fixed issue with uri template router .. it was applying on request_uri
instead of path_info now it match on PATH_INFO
more flexible authenticated query .. on handler, and not anymore on context
object
fixed wrong order in parameter for callers of set_meta_string_variable
added debug_output to WGI_VALUE
first version of http authorization .. for now, only basic digest
added request_handler_routes_recorder to provide an implementation for
`REQUEST_HANDLER.on_handler_mapped'
Added "on_handler_mapped" callback to allow any REQUEST_HANDLER to record the
existing routes.
typo
2011-09-15 Jocelyn Fiat
minor enhancement of error lib
Added WGI_MULTIPLE_STRING_VALUE Renamed value as WGI_STRING_VALUE.string
Renamed a few classes .._CONTEXT_I as .._CONTEXT updated example.
cosmetic
updated README.md
2011-09-14 Jocelyn Fiat
Simplified interface of "router" library classes
applied renaming for rest and router lib
Reorganized library "server/request/rest"
some renaming to use _I for the generic classes, and removed the DEFAULT_
prefix for default implementation this should makes things easier for new
users
reorganized router library
- Adopted deferred WGI_VALUE design for Result type of *_parameter and
similar functions - Adopted the ITERATION_CURSOR [WGI_VALUE] design for
*_parameters and similar functions - renamed parameter as item - provided
helper function to handle "string" value parameters Experimental for now.
better result type (using READABLE_..)
sync with nino
2011-09-13 Jocelyn Fiat
updated changelogs
Added first draft for RESTful library note: the interfaces are likely to
change in the future
updated config file and examples
adding routing handler few renaming
2011-09-09 Jocelyn Fiat
changing design to use generic instead of anchor types
make router more easy to inherit from and specialized
Added support during match for {/vars} and also handle cases such as
/foo.{format}{/vars} or /foo.{format}{?vars} where no literal exists between
the uri template expressions
better type for argument and result (using READABLE_...)
change to standard default values
2011-09-08 jvelilla
Sync to jocelyn EWF master
Update
2011-09-07 Jocelyn Fiat
sync doc/wiki
use `resource' as generic name for uri or uri_template
added changelogs.txt
Added request methods criteria for the router component. Now one can decide
map_agent_with_request_methods ("/foo/bar/{bar_id}", agent handle_foo_bar,
<<"GET">>) (and similar for non agent way) This might be useful in pure
RESTful environment.
fixed example .. where we forgot to set the status, and send the header (DbC
helped here)
renamed (un)set_meta_parameter as (un)set_meta_variable
Missing HTTP_ prefix for header meta variable in REQUEST
2011-08-30 Jocelyn Fiat
Changed prefix from EWSGI_ to WGI_ Changed meta variable type to
READABLE_STRING_32
2011-08-29 Jocelyn Fiat
naming: meta_variable(s) changed some string type to READABLE_STRING_32 or
READABLE_STRING_8 for now regarding Meta variables (need decision here..)
2011-08-25 Jocelyn Fiat
changed prefix GW_ into EWF_ for EiffelWebFramework use
READABLE_STRING_GENERAL instead of just STRING
sync wiki doc
Merged REQUEST and ENVIRONMENT into REQUEST renamed ENVIRONMENT_NAMES into
META_NAMES better usage of READABLE_STRING_GENERAL, and other strings
abstract RESPONSE_BUFFER in implementation of EWSGI for the implementation,
inheriting from deferred specification (more to come later)
Merged REQUEST and ENVIRONMENT into REQUEST renamed ENVIRONMENT_NAMES into
META_NAMES better usage of READABLE_STRING_GENERAL, and other strings for the
implementation, inheriting from deferred specification (more to come later)
2011-08-24 Jocelyn Fiat
fixing wrong feature usage
2011-08-18 Jocelyn Fiat
code cleaning, and prepare for internal review
2011-08-04 Jocelyn Fiat
enhanced the ERROR_HANDLER
2011-08-02 Jocelyn Fiat
minor improvements on response_as_result code
cosmetic in config file .ecf
add "write_headers_string" to RESPONSE_BUFFER
2011-08-01 Jocelyn Fiat
sync wiki
moved ewsgi-full config file under tests (this is mainly for dev purpose, to
be able to compile and edit all classes related to ewsgi)
Tried to reduce gap between both EWSGI proposals Re-adapt the Spec-compliant
solution (instead of Lib-compliant solution). Thus no more 100% deferred
interface. Rename EWSGI_RESPONSE into EWSGI_RESPONSE_BUFFER Added in
extra/response-as-result/ an copy/paste from the implementation of Paul's
proposal (not up to date with Paul's spec). But this is mainly for
information and tests. Removed part of the ewsgi/specification interfaces ...
to be able to test EWSGI compliant library against the pure specification
(experimental). Renamed most of the GW_... into EWSGI_...
2011-07-29 Jocelyn Fiat
added http_accept feature to represent "Accept:" HTTP header
added hello_routed_world example few changes on new `router' library (still
in-progress)
Added first draft for a URI and/or URI-template base request router.
cosmetic
Added "flush" to the EWSGI_RESPONSE_STREAM
added missing non-void-safe .ecf
added missing non-void-safe .ecf
2011-07-28 Jocelyn Fiat
Fixed various issue with URI template, added corresponding tests
It seems good convention to also add the "Status:" header
fix hello world example
ignore tests/temp
2011-07-27 Jocelyn Fiat
added script to test compilations of .ecf in EWF
Added the possibility to set the "Status" header (different from the status
line) in GW_HEADER Renamed EWSGI_RESPONSE as EWSGI_RESPONSE_STREAM to avoid
confusion with EWSGI_RESPONSE as stated in Paul's proposal Added default
"configuration" (for nino and cgi) to be independant of the connector (at
compilation time) Added example implementing Paul's proposal on top of EWSGI
Added an implementation folder in ewsgi_spec, mainly to provide default
implementation just to save the developer of connector some time. changed
structured
added non void-safe configuration files
restructured specification folders
Apply prefix renaming from the specification Reduced the number of EWSGI
classes
now use prefix EWSGI_ instead of GW_ for ewsgi specification
First step to extract the interface of the EWSGI specification into its own
library Applied the changes
removed implementation from APPLICATION , RESPONSE and REQUEST classes
removed the notion of status from GW_HEADER, since it should not be part of
the HTTP header added status setting in GW_RESPONSE added a default
implementation for write_status in OUTPUT_STREAM (it should be moved away in
the future) removed any implementation from GW_REQUEST, and put it in
GW_REQUEST_IMP
2011-07-26 Jocelyn Fiat
replace write_string by write in RESPONSE
2011-07-25 Jocelyn Fiat
various alternative implementation for response
Redesigned the RESPONSE to remove the output stream from the deferred
interface Redesigned the uploaded file part to be more object oriented Move
some implementation from REQUEST to REQUEST_IMP
2011-07-22 Jocelyn Fiat
added doc/spec for uri template
Fixed issue with matcher
fixed typo
Improvement and revert back to support draft 04 (but using custom variable,
allow the user to follow draft 05 spec)
fixing issue with URI TEMPLATE matcher
added URI_TEMPLATE_MATCH_RESULT
2011-07-21 Jocelyn Fiat
sync
updated README
updated README
2011-07-20 Jocelyn Fiat
added use of URL-encoder to unencode the URL values (to fill the parameters)
review design of GW_RESPONSE to hide the output, and remove the header
attribute added script_url in REQUEST to help the user build url relative to
script_name + cosmetic
First version of URI Template library as specified by
http://tools.ietf.org/html/draft-gregorio-uritemplate-05 (it seems to
contains some error in the spec .. or minor incoherences, to double check)
The matcher is basic, it does not handle all the details of the string
builder, but that seems ok for now.
2011-07-18 Jocelyn Fiat
added format and request method constants classes + license file
added default rescue code on exception rescue
nicer Eiffel code, let's not try to achieve everything-in-one-line style ...
restrict creation only by GW_APPLICATION and descendant
add output helper feature to RESPONSE
Fixed issue with nino handler and base url
sync nino and json
2011-07-14 Jocelyn Fiat
rename new_request_context by new_request
2011-07-13 Jocelyn Fiat
cosmetic
renamed GW_REQUEST_CONTEXT as GW_REQUEST
Design change, now we have `req' REQUEST and `res' RESPONSE instead of just
`ctx'
enhanced comment for `execute'
Make a simple hello world based on nino
2011-07-12 Jocelyn Fiat
Added GW_HEADER Added pre_, post_ and rescue_execute for GW_APPLICATION Fixed
an unknown class in export clause cosmetic + copyright
fixed submodule path ... Windows path separator issue..
added instruction to get the source code
First integration of the new GW_ design more centralized on connector, and
does not require specific feature on GW_APPLICATION depending on the
connector. So this is really more flexible this way, and much easier to write
application supporting CGI, FCGI, Nino and so on .. as demonstrated in
hello_world This is a first version, more will come later, mainly migrating
from Eiffel Web Reloaded to this Eiffel Web Framework project.
2011-07-08 Jocelyn Fiat
focus on GW_APPLICATION
2011-07-07 Jocelyn Fiat
a few renaming better GW_ENVIRONMENT interface
2011-07-06 Jocelyn Fiat
updated doc
2011-07-05 Jocelyn Fiat
cosmetic, license, copyright
added doc/wiki (wiki from github)
First draft for the ewsgi spec
2011-06-29 Jocelyn
Let's start the Eiffel Web Framework