From 593fbef57b878d678fef7fe99ade39e9318acbcb Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Wed, 6 May 2015 21:35:09 +0200 Subject: [PATCH] Updated readme. --- ChangeLog | 3138 ++++++++++++++++++++++++++++++++++++++++++----------- README.md | 6 +- 2 files changed, 2525 insertions(+), 619 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3a2496cd..b8786d1b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,2024 @@ -2012-05-14 Jocelyn Fiat +2015-05-06 Jocelyn Fiat + + Added abstraction WSF_ROUTED, and WSF_FILTERED. Added under + library/server/obsolete/v0 the previous non concurrent friendly version of + EWF/WSF, for backward compatiblity. Removed WSF_CALLBACK_SERVICE and + WSF_TO_WGI_SERVICE which are not need with new EWF. + +2015-04-07 Jocelyn Fiat + + Updated code to remove obsolete call on recent version of json library. + Updated upload_image example to use PATH instead of DIRECTORY_NAME or + similar. Removed unused local variables. + + Added a few descriptions and comments. + +2015-04-06 jvelilla + + Added descriptions and comments + + Added descriptions and feature comments. + + Added features comments. + + Added Missing Class and feature descriptions. Removed author entry. + +2015-04-02 Jocelyn Fiat + + Export request and response from WGI_EXECUTION to itself. Added + WSF_FILTERED_ROUTED_SKELETON_EXECUTION + +2015-04-01 Jocelyn Fiat + + renamed keep_alive_requested as is_persistent_connection_requested. + + Better support for HTTP/1.0 and also related to persistent connection. + + Enable support for persistent connections. (test: works fine with curl -k , + but weird behavior with ab -k ...) + + First step to improve a bit error handling related to socket disconnection. + Mainly in standalone connector for now. + + Improved the simple_file example with image, and not found message. Use + standalone connector in SCOOP concurrency mode. + + Cleaned simple example, and made the standalone target with SCOOP + concurrency. + +2015-03-31 Jocelyn Fiat + + Updated various indexing notes. Removed a few obsolete classes. Cosmetics + + Migrated most of the example and library to new design. + +2015-03-25 Jocelyn Fiat + + Implemented support for base url in httpd connector. + + Migrated simple, simple_file and upload_image example. Adapted EWF + accordingly. + +2015-03-24 Jocelyn Fiat + + Added SCOOP support for WSF. WSF_SERVICE is deeply changed, and addition of + WSF_EXECUTION. Todo: code cleaning, removing useless things. + +2015-03-20 Jocelyn Fiat + + Support for concurrencies: none, thread and SCOOP + + Finally SCOOP supported. + +2015-03-19 jvelilla + + Updated HTTP_COOKIE, enable to add a cookie with empty value. Added feature + to check if a date is valid rcf1123 is_valid_rfc1123_date. Added test cases + related to valid cookie dates. Updated wsf_response add_cookie basedo on + review comments. + + Updated is_valid_character, using NATURAL_32 as an argument to avoid multiple + conversions. Updated add_cookie, added features has_cookie_name and is_cookie + line to avoid the use of STRING.split and STRING.start_with. + +2015-03-17 jvelilla + + Updated HTTP_COOKIE class based on comments. Added missing descriptions in + test classes + + Added the add_cookie feature Added test cases to check cookies in + WSF_RESPONSE- Added mock classes use for test cases. + +2015-03-17 Jocelyn Fiat + + Experiment to avoid pseudo sequential execution + + First attempt to use `{NETWORK_STREAM_SOCKET}.accept_to' + +2015-03-13 jvelilla + + Updated code based on Jocelyn's comments. + + Added HTTP_COOKIE and test cases. Added WSF_COOKIE class, inherit from + HTTP_COOKIE. + +2015-03-13 Jocelyn Fiat + + First steps to provide a concurrent compliant EWF connector. + +2015-03-11 Jocelyn Fiat + + fixed location of before_15_01 folder. + +2015-03-05 Jocelyn Fiat + + Removed the -safe since now new project should be void-safe + + moved wizard under tools/estudio_wizard + + moved wizard from tools to helpers + + Updated script to install wizard in current EiffelStudio installation. + + Updated the ewf estudio wizard to have a console and a graphical wizard. + Usage: wizard -callback file.cb path-to-rootdir folder. + +2015-02-18 Jocelyn Fiat + + Prepare nino ecf to be compilable with upcoming changes in EiffelNet / + NETWORK_STREAM_SOCKET interface. (see rev#96640 from eiffelstudio subversion + repository) + +2014-12-02 Jocelyn Fiat + + Updated install_ewf.bat to use the new "ecf_tool" from + https://svn.eiffel.com/eiffelstudio/trunk/Src/tools/ecf_tool . + + Completed change on debug handler and filter, to use WSF_DEBUG_INFORMATION. + +2014-12-01 Jocelyn Fiat + + Added assertions on router helpers, and also agent handler. Closes issue #159 + +2014-11-24 Jocelyn Fiat + + Fixed issue#157 (WSF_REQUEST.cookies_table does not terminate on cookies + without a value, or ending with semi-colon) Added related autotest. + +2014-11-19 Colin Adams + + Added {WSF_REQUEST}.http_content_encoding + +2014-11-18 Colin Adams + + issue #149 (Simple CORS support for GET requests in policy-driven framework) + + Issue #144 (Add last_modified to WSF_SKELETON_HANDLER) + +2014-11-17 Colin Adams + + Issue #143 + +2014-11-17 Jocelyn Fiat + + Converted ecf file to complete void-safe. Improved JSON_PRETTY_STRING_VISITOR + to support STRING_8 or STRING_32 output. Added examples. Added doc in the + folder "doc". Updated Readme and other files. Added package.iron file. + +2014-10-10 Jocelyn Fiat + + Fixed compilation issue for wsf_js_widget package. + +2014-09-30 Jocelyn Fiat + + Marked converters classes as obsolete. + + Updated license and copyright. Updated classes with bottom indexing notes + related to copyright and license. + +2014-09-24 Jocelyn Fiat + + Fixed various issue with parsing string (such as \t and related), Implemented + escaping of slash '/' only in case of ' Many feature renaming to match Eiffel style and + naming convention, kept previous feature as obsolete. Restructured the + library to make easy extraction of "converter" classes if needed in the + future. Updated part of the code to use new feature names. + +2014-07-07 Jocelyn Fiat + + Added custom-template in examples, as a base template to integrate easily + other JS widgets. Added custom example (based on custom-template project) + that demonstrates how to integrate a thirdparty JS component such as d3 + within the application using wsf_js_widget. Removed various unecessary ecf + dependencies. + + Fixed compilation issue related to old usage of modified JSON library. + + Move wsf_js_widget library under draft/library/server/wsf_js_widget + +2014-07-04 Conaclos + + Apply pretty print tool. Apply on each class in test suite and library. + +2014-07-02 Jocelyn Fiat + + Replace any multiple slash sequence by a single slash character for + PATH_INFO. + +2014-07-01 Jocelyn Fiat + + Various changes related to new WSF_DEBUG_INFORMATION and WSF_DEBUG_HANDLER. + + Fixed various issues related to unicode and CGI variables (assuming that CGI + variables are utf-8 encoded, and sometime percent encoded). Delayed + computation of `value' and `name' from WSF_STRING. Fixed computation of + REQUEST_URI when the server does not provide it (this is rare, but possible). + compute it as SERVER_NAME + encoded-PATH_INFO + {? + QUERY_STRING} + +2014-06-30 Conaclos + + Add documentation and contracts for domain types. + + Improve converters. Replace old syntax with new one and improve + implementation. + + Syntax update. Replace assigment attempt with object test. + +2014-06-30 Jocelyn Fiat + + Improved the debug example, so that it outputs more information. + + Ensure that PATH_INFO and REQUEST_URI are following the CGI specifications: - + PATH_INFO is percent decoded but still utf-8 encoded, this is available via + WGI.path_info and WSF_REQUEST.utf_8_path_info. - Added + WSF_REQUEST.percent_encoded_path_info - and WSF_REQUEST.path_info remains the + unicode value for PATH_INFO Added cgi_variables: WGI_REQUEST_CGI_VARIABLES + to have a simple and quick view on CGI variables Added execution_variables to + be able to iterate on execution variables. Added + PERCENT_ENCODER.percent_decoded_utf_8_string Improved the WSF_DEBUG_HANDLER + to provide more information thanks to WSF_DEBUG_INFORMATION object. + +2014-06-23 Jocelyn Fiat + + Raised the void-safety level to "complete" Added comments. + +2014-06-12 Jocelyn Fiat + + Added example to help debugging EWF This is mainly a kind of echo server .. + that return the request information. + +2014-06-11 Jocelyn Fiat + + Improved the uploading of file in regard to temporary filename. Avoid to + overwrite the same file for concurrent requests uploading the same filename. + +2014-05-14 Jocelyn Fiat + + Make sure to be able to compile in complete void-safe for 14.05 and still + compile with 13.11 + + Support for unicode error message for the + ERROR_HANDLER.as_string_representation: STRING_32 and as well for + debug_output, this avoid unecessary unicode string truncation. + + debug_output can return a string 32, so avoid truncated unicode value by + returning a string 32 value for `debug_output' . + + Replaced notion of session uuid by session id which is more generic (could be + a uuid, or something else). Use STRING_TABLE for the implementation of + session data container. Added a few missing comments. + + renamed HTTP_HEADER_BUILDER as HTTP_HEADER_MODIFIER + +2014-04-22 Jocelyn Fiat + + Updated ecf files toward complete void-safety Added iron package files. Added + libfcgi files to compile .lib and .dll on Windows + + Fixed various Unicode text handling. Moved example folder inside the library, + and renamed it "demo" Improved example code. + + Added support for UTF-8 during decoding. The JSON specification does not + require it, but some json encoders are using utf-8 encoding for json + encoding. Added related autotest case. + +2014-04-10 Jocelyn Fiat + + Added an example to embed EWF nino service into a Vision2 desktop + application. This is locally consumed via the embedded web browser component. + +2014-04-09 Jocelyn Fiat + + Updated encoder library, especially URL encoders to reuse implementation of + percent_encoder.e Fixed JSON_ENCODER for %T and related. Updated related + autotest cases. + + Moved implementation of WSF_PERCENT_ENCODER into "encoder" library, and added + the *partial* variant. + + Improved BASE64 to update has_error when decoding. Added manual tests. + +2014-04-08 Jocelyn Fiat + + Fixed issue with URL_ENCODER encoding (and small optimization) + +2014-03-26 Jocelyn Fiat + + Code improvement Cosmetic (comments, names, formatting) + +2014-03-19 hassany + + Fix STRING_32 issues + +2014-03-19 severin + + Added more comments and assertions to all classes; clean up + +2014-03-18 Jocelyn Fiat + + Added alias "[]" to `item', to get header value for a header name. Added + assigner for `item' to make it easier to add header item without confusing + key and value. Better parameter names (more explicit) + +2014-03-17 Jocelyn Fiat + + Added comments, used better parameter names. + + Extracting HTTP_HEADER_BUILDER from HTTP_HEADER to provide useful interface + on WSF_RESPONSE, and make WSF_SESSION easier to use. + +2014-03-12 hassany + + Extend documentation + +2014-03-12 severin + + Updated comments and added contracts for core controls in webcontrol + +2014-03-05 severin + + Added assets to library + +2014-03-05 YNH Webdev + + Rename WSF_FILE to WSF_FILE_DEFINITION + + Change STRING TO STRING_32 + +2014-03-03 Jocelyn Fiat + + Added a demo application server for basic http autorization + +2014-02-28 Jocelyn Fiat + + Removed usage of remote anchor types. + +2014-02-24 Jocelyn Fiat + + Fixed the ecf to test global compilation of EWF. + +2014-02-23 YNH Webdev + + Add class description to validators Rename Wsf_progresssource + +2014-02-21 severin + + Began with class documentation + +2014-02-03 Jocelyn Fiat + + Udated to highest level of void-safety. Fixed obsolete calls. + +2014-01-26 YNH Webdev + + Finalize WSF_DYNAMIC_MULTI_CONTROL + + Add dynamic multicontrol + +2014-01-25 YNH Webdev + + Image preview + + Fix upload state + +2014-01-24 Jocelyn Fiat + + Update restbucksCRUD example to use "crypto" library rather than "eel". + Updated readme.md to add curl command to test the server. + +2014-01-11 YNH Webdev + + Add set value to value controls + +2014-01-11 severin + + Included time library to set current date in date picker + +2014-01-08 severin + + Small change on date picker control, removed date input + +2014-01-07 jvelilla + + Fixed error with identity encoding. + +2014-01-06 severin + + Modified datepicker control + +2014-01-05 severin + + Removed country chooser widget + + fixed js + + modified country and date/time chooser + +2014-01-04 severin + + Included bootstrap datetimepicker + + Added date chooser widget + + Removed add_dropdown methods from navbar, some cleanup in different controls + + ATTENTION: ugly append_attributes added to stateless control, replaces + set_attributes -> maybe improve + + Moved set_attributes from BASIC_CONTROL to STATELESS_CONTROL + +2014-01-02 YNH Webdev + + Add disable option + + Allow remove + +2014-01-01 YNH Webdev + + Add serverside file id to file structure + + Demo upload + + Workin file upload + +2013-12-31 YNH Webdev + + Change parameter type + + File upload implementation part1 + + Fix dropdown list, clean up actions + +2013-12-03 Jocelyn Fiat + + Fixed various issues with libfcgi on Linux, mainly related to + stdout,stderr,stdin, feof and related. Added `reset' to the libfcgi input + stream so that it is possible to reset previous errors. + +2013-12-02 Jocelyn Fiat + + For Nino connector, ensured that environment variables are percent-encoded in + meta variables. + +2013-11-19 Jocelyn Fiat + + http_client: changed some default settings `connect_timeout' and `timeout' to + 0 (never timeout) Updated comments + +2013-11-18 Jocelyn Fiat + + removed CRLF eol in many files + +2013-11-12 Jocelyn Fiat + + Fixed wrong assertion related to upload_data and upload_filename in + HTTP_CLIENT_REQUEST_CONTEXT . Fixed issue #124 Enable all assertion for the + related autotest cases. + +2013-11-11 YNH Webdev + + Rename files + +2013-11-10 YNH Webdev + + Rename validators, Make forms resizable + + Validate all fields and make regexp stricter + + Fix event handler + + Fix email validation and min and max validator + +2013-11-09 YNH Webdev + + Fix slider + +2013-11-08 YNH Webdev + + Fix rendering issue. Add active class + +2013-11-08 Jocelyn Fiat + + Fixed issue with unicode login:password Added EIS info Added testing cases. + + Updated gewf source code to allow custom settings, and in particular the + location of the templates. Fixed compilation of application launcher, and + make it more flexible. + +2013-11-08 YNH Webdev + + Adjust layout control and fix navlist + + Fix autocomplete + + Redesign states and implement generated control_name + +2013-11-07 jvelilla + + Updated comments, add DEBUG_OUPUT to JSON_ARRAY. + + Fixed normalized line endings + + Normalize line endings + +2013-11-06 YNH Webdev + + Add stateless widgets + +2013-11-05 severin + + Fix Layout Control + + Added navlist widget + + Added WSF_LAYOUT_CONTROL + +2013-11-03 YNH Webdev + + Add item alias + +2013-11-02 severin + + Fixed js + + Added dropdown control + + Fixed creation procedures (make) + +2013-10-30 YNH Webdev + + Fix slider code + +2013-10-29 YNH Webdev + + Fix path + +2013-10-29 severin + + Fixed WSF_MULTI_CONTROL (wrong order of subcontrols), completed navbar, + improved slider + +2013-10-25 Jocelyn Fiat + + Added content_negotiation to official EWF release. + +2013-10-23 Jocelyn Fiat + + Removed trimmed_string function and callers, and for now, use + (left_|right_)adjust + +2013-10-22 jvelilla + + Reuse trimmed_string from HTTP_HEADER_UTILITIES. Added description to + FITNESS_AND_QUALITY. + +2013-10-18 Jocelyn Fiat + + Added content_negotiation in "wsf" library + + Minor changes in wsf test cases. + + Fixed an issue with one short chunk and empty trailer issue#81 + + Class renaming for content_negotiation Splitted SERVER_CONTENT_NEGOTIATION in + 4 differents classes for each kind of negotiation Changed to use ITERABLE + over LIST for supported variants arguments Factorized some code for http + parameter parsing such as q=1.0;note="blabla" and so on Integrated within + EWF + +2013-10-15 Jocelyn Fiat + + Updated content_negotiation with better class names and feature names. Minor + semantic changes in VARIANTS classes Factorized some code in + HTTP_ACCEPT_LANGUAGE + +2013-10-14 Jocelyn Fiat + + Enabled assertion on content_negotiation during autotests The tests project + is now void-safe Using force instead of put_left seems to work fine and is + better for performance, and no need to check for precondition "not before" + +2013-09-29 Severin + + Test + +2013-09-28 YNH Webdev + + Add codeview + + Fix load state error + + Implement lazy js load wraper + + Load needed libraries dynamically + +2013-09-27 Severin Münger + + Fixed slider + +2013-09-27 YNH Webdev + + Create new JSON_OBJECT + +2013-09-25 jvelilla + + Fixed Issue #75 CONNEG doesn't handle accept encodings correcty + +2013-09-24 Jocelyn Fiat + + Reused string constants from HTTP_HEADER_NAMES + + Added WSF_SELF_DOCUMENTED_AGENT_HANDLER and variants for uri, uri_template, + starts_with, ... to provide a way to documentate easily wsf agent handler. + +2013-09-24 Severin Münger + + Moved to draft + + Removed WSF_STATELESS_MULTI_CONTROL + + Added slider demo + +2013-09-24 YNH Webdev + + Add table title + + Implement remove + +2013-09-23 YNH Webdev + + Stop interval if deleted + + Introduce actions First working modal + +2013-09-22 YNH Webdev + + Set url within page class + + Implement control isolation + + Restructure callbacks + +2013-09-22 Severin Münger + + Improved Navbar, changed attribute handling + +2013-09-22 YNH Webdev + + Add comments to grid controls + +2013-09-21 Severin Münger + + Added comments to autocompletion, input, navbar, progressbar, validator, + webcontrol. Some more little changes. + +2013-09-20 YNH Webdev + + Fix tuple + + Make recommended changes - Implicit casting - Use same_string + +2013-09-20 jvelilla + + Added description to results classes. Removed unnecessary class Clean code: + removed feature out, updated corresponding test cases. + +2013-09-20 YNH Webdev + + Rename clusters to singular names + + Move project to wsf_js_widget + +2013-09-20 Jocelyn Fiat + + Renamed `content_negotation' as `content_negotiation' (fixed typo) Updated + .ecf and Eiffel code depending on previous CONNEG + + Minor changes - using http_client library instead of libcurl directly - using + implicit conversion to JSON_STRING to improve code readability - use + ARRAYED_LIST instead of LINKED_LIST .. for performance. - cosmetic .. but + still a lot of feature clauses are missing, comments, assertions ... + +2013-09-19 jvelilla + + Removed http classes related to http expectations. Updated code based on the + code review. Still work in progress + +2013-09-17 jvelilla + + New directory structure (variants, results, parsers) Refactor STRING to + READABLE_STRING_8. Clean code, added documentation and EIS references. + +2013-09-16 jvelilla + + Renamed CONNEG to content_negotiation. Update MIME_PARSER to use + HTTP_MEDIA_TYPE. + +2013-09-16 Jocelyn Fiat + + Accepts "*" as valid media type (interpreted as */* to be flexible) + + Fixed type having a semicolon in a parameter value such as "text/plain; + param1=%"something;foo=bar%"; param2=%"another-thing%" + + Added autotests to http library in relation with mime type and content type. + Fixed an issue with more than one parameter. + +2013-09-16 YNH Webdev + + Slow down fetching + +2013-09-15 Severin Münger + + Fixed progressbar + + Added progress callback + +2013-09-15 YNH Webdev + + Make js files local + + Add all countries to flag list Set encoding (Must be changed to UTF-8 in + future) + + Rearrange demo Add contact autocompletion + + Create basepage + +2013-09-15 Severin Münger + + Small changes + + Added Progress Control + + Included navbar example + +2013-09-14 YNH Webdev + + Fix change event + + Style demo pages + + Implement repeater + + Google news example + + - Add event paramenter - Implement Paging control + +2013-09-13 Severin Münger + + Fixed rendering, added navbar + +2013-09-13 Jocelyn Fiat + + Added PATCH support in http_client, and provided custom_with_upload_data and + custom_with_upload_file. + + forget about older version of Eiffel cURL + +2013-09-13 Severin Münger + + Small changes/fixes + + Small fix removed DOCTYPE + + New Control structure + +2013-09-13 YNH Webdev + + Add Grid Widget + +2013-09-12 Severin Münger + + Extended autocompletion with customized templates + + Autocompletion + + Changed structure + +2013-09-09 Jocelyn Fiat + + Fixing handling of query parameter without value Issue#70 + https://github.com/EiffelWebFramework/EWF/issues/70 + +2013-09-08 jvelilla + + Moved Selenium web driver to WebDriver-Eiffel repository + +2013-09-06 YNH Webdev + + Min/Max validator + +2013-09-06 Severin Münger + + Some small changes + +2013-09-06 YNH Webdev + + Add HTML control + +2013-09-06 Jocelyn Fiat + + fixed compilation of wsf_extension + +2013-09-06 YNH Webdev + + Implement serverside and client side validatation + +2013-09-06 Jocelyn Fiat + + Added WSF_CUSTOM_HEADER_FILTER which provide a convenient way to add a custom + header from a filter. Added to wsf_extension WSF_DEBUG_FILTER and + WSF_DEBUG_HANDLER that could be convenient to test specific requests + Restructured wsf_extension + + added policy driven license .lic files + + Added WSF_WIDGET_RAW_TEXT to render text via html encoding. Added + WSF_WIDGET_COMPOSITE.extend_html_text (READABLE_STRING_8) that should replace + the now obsolete "extend_text" Added WSF_WIDGET_COMPOSITE.extend_raw_text + (READABLE_STRING_GENERAL), for text that need to be html encoded during html + rendering. Made WSF_FORM_RAW_TEXT obsolete. + + Used res.put_header_lines (h) rather than res.put_header_text (h.string) + +2013-09-06 YNH Webdev + + First working checkbox list + +2013-09-06 Severin Münger + + Added checkbox list, modified form validation + +2013-09-05 Severin Münger + + Added validators for decimals and mails + + Added Regexp validation (later used for mail, numbers...) + +2013-09-05 YNH Webdev + + Fix form and textarea bug + + Test the new controls + +2013-09-05 Severin Münger + + Implemented WSF_CHECKBOX_CONTROL, added id attribute to rendering of + WSF_CONTROL + +2013-09-05 YNH Webdev + + Fix render function + +2013-09-05 Severin Münger + + Restructured validators, fixed form element rendering + +2013-09-05 YNH Webdev + + Fix render function + +2013-09-05 Severin Münger + + Implemented WSF_FORM_ELEMENT_CONTROL + + Began with implementation of form handling + +2013-09-05 YNH Webdev + + Use render tag + +2013-09-05 Severin Münger + + Adapted rendering of multi control + + Changed creation procedures + +2013-09-05 YNH Webdev + + Change wsf control + +2013-09-04 Olivier Ligot + + Contribute page + +2013-09-03 Severin Münger + + Added TextArea + +2013-09-02 Severin Münger + + forgot to add new files + + Added generalized input control similiar to text + +2013-08-29 YNH Webdev + + Only send changes back to client + +2013-08-28 YNH Webdev + + Add comments Use Precursor + + Clean up code Simplify event + + Only callback if there is an event attached + + Remove ugly do nothing hack + + Communication in both directions (Text control) Code regrouping + + Fix multi control Use multi control in example + + First working callback + +2013-08-27 Severin Münger + + Added WSF_MULTI_CONTROL to support controls that consist of multiple separate + controls. + + Created first working sample page application. + +2013-08-27 YNH Webdev + + Pretty Print + + Add a json state to each control + + Page structure + +2013-08-27 Severin Münger + + Created widget-project testapp project. + +2013-08-21 Jocelyn Fiat + + Updated copyright for policy-driven classes, which is a contribution from + Colin Adams. + +2013-08-20 Jocelyn Fiat + + Extracted the policy driven classes into their own library for now + "wsf_policy_driven.ecf" Updated the restbucksCRUD example to demonstrate both + approaches. + + Moved recent policy-driven classes into "policy" sub folder + + Removed WSF_ROUTING_HANDLER.make_with_router (a_router) It was not used in + existing code, and potentially dangerous, if coder reuses router by accident. + +2013-08-16 Colin Adams + + Changed age to max_age + +2013-08-14 Colin Adams + + Further use of constants for execution variables + +2013-08-13 Colin Adams + + Gave symbolic names to execution variables used by the framework + +2013-08-12 Colin Adams + + Added some checks for custom erros being set. + + refactored to allow etags to work properly when multiple representations are + available + +2013-08-08 Colin Adams + + Implemented remaining error response calls + + made deleted into an effective routine + +2013-08-07 Colin Adams + + Fixes as picked up by code review + +2013-08-06 Colin Adams + + restbucksCRUD example changed to use policy-driven framework + + Policy-driven URI template handlers + + Add CONNEG to wsf*.ecf to support ploicy-driven framework + +2013-08-05 Jocelyn Fiat + + Enhanced interface of JSON_ARRAY and JSON_OBJECT Added JSON_ITERATOR + +2013-07-19 Olivier Ligot + + Fix C compilation when using libfcgi connector on OS X (#65) + +2013-07-11 Olivier Ligot + + Tests compile again (fixes #63) + +2013-07-05 Jocelyn Fiat + + Moved gewf under draft/src/gewf + + licensing and copyright + + First working (but limited) tool + + Added first attempt to provide a application builder. For now only trying to + have a generic template. Do not expect anything working for now, this is + just the start of a draft + +2013-07-02 Jocelyn Fiat + + Moved the cms component to https://github.com/EiffelWebFramework/cms This is + now out of EWF repository. + +2013-06-28 Jocelyn Fiat + + Improved Unicode support. + + Ensured that EWF compiles with 7.2 (note about ecf version 1-10-0 + void_safety="all" <--> 1-11-0 void_safety="transitional" 1-10-0 + void_safety="all" <--- 1-11-1 void_safety="all" ) + +2013-06-18 Jocelyn Fiat + + Removed wsf_support, which is useless and unused + +2013-06-17 Jocelyn Fiat + + Updated ecf file as workaround to make autotest works fine. + +2013-06-13 Jocelyn Fiat + + Added notification_email library as official EWF lib. + + Unicode support for notification_email library + +2013-06-12 Jocelyn Fiat + + Removed a few obsolete usages, and benefit from new classes from EiffelStudio + >= 7.2 + + Updated WGI specification to ease future migration to unicode support. Use + STRING_TABLE, and better interface of READABLE_STRING_GENERAL, this way the + signature are more flexible for unicode keys. Note that for now, unicode + environment variables are not correctly supported in WGI especially the value + of the variables. Any layer on top of EWGSI suffers from the same issues. + Better exception handling + code cleaning + + minor optimization avoiding to create temporary string that might be big + + Updated CMS support for unicode. + + Better support for unicode path and values. Added + WSF_REQUEST.percent_encoded_path_info: READABLE_STRING_8 to keep url encoded + path info, as it is useful for specific component The router is now using + WSF_REQUEST.percent_encoded_path_info since URI_TEMPLATE are handling URI + (and not IRI) this fixes an issue with unicode path parameters. This should + not break existing code, and this fixes various unicode related issues + related to PATH parameter and path info but also any component using file + names. (required EiffelStudio >= 7.2) + +2013-06-12 Olivier Ligot + + Rename notification to notification_email + + Extract notification library from the CMS draft application The new library + is located in library/runtime/process/notification. This allows to use it + apart from the CMS. + +2013-06-11 jvelilla + + merge + +2013-06-07 Jocelyn Fiat + + Fixed various void-safety issue with recent compilers. Note that EWF does + now require EiffelStudio 7.2, and is compiling with 7.3 + +2013-05-29 jvelilla + + Added command POST /session/:sessionId/modifier Initial implementation of + KeyBoard. Added Mouse class, but not implemented. + +2013-05-28 Jocelyn Fiat + + Added WSF_REQUEST.read_input_data_into_file (FILE) + +2013-05-22 jvelilla + + Updated command_executor Added more examples. + +2013-05-20 jvelilla + + Update find element examples. Improved command executor + +2013-05-18 jvelilla + + Added new selenium locator examples. Fixed find_elements in WEB_DRIVER. + +2013-05-14 jvelilla + + Move expectation classed under a expectation cluster, added a new expectation + class for header. + + Added examples find by id, name and class. + +2013-05-13 jvelilla + + Updated selenium WEB_DRIVER_WAIT, the feature until_when now use a predicate. + Updated the related example. + +2013-05-10 jvelilla + + Initial implementation of HTTP RESPONSE EXPECTATIONS. Added a class to test + http client with httpbin.org and expectations + +2013-05-08 jvelilla + + Updated WEB_DRIVER_WAIT class, still need to be improved. Updated Readme and + the example + +2013-05-03 jvelilla + + Improve the example, Added a new class WEB_DRIVER_WAIT, still under + development. Update web driver, to define time outs. + +2013-04-30 jvelilla + + Added a simple search example. Updated web_driver, use the API as delegation + instead of inheritance. Updated web_element class. + +2013-04-29 jvelilla + + Created new classes to represent a web driver. Added Examples, clean code + +2013-04-24 jvelilla + + Completed low level methods, clean code. + + Implemented more commands from REST API JSONWireProtocol Refactor + COMMAND_EXECUTOR. + +2013-04-23 jvelilla + + Added more command from JSONWireProtol. + + Added more commands from the JSONWireProtocol. + +2013-04-22 Jocelyn Fiat + + added header helper feature in the context interface added + HTTP_CLIENT_SESSION.custom (...) to support any kind of request methods + +2013-04-22 jvelilla + + Added new classes, implemented more methods from JSONWireProtol API. Added + test cases + +2013-04-17 Colin Adams + + Made changes requested in review + +2013-04-17 jvelilla + + Fixed errors in navigate_to_url command, Fixed url templates in + json_wire_protocol_command. Added test cases to AutoTest + +2013-04-16 jvelilla + + Fixed feature typo, improved commands, added AutoTest + +2013-04-15 jvelilla + + Updated RestAPI commands + +2013-04-13 Colin Adams + + If-Match implemented in skeleton handler + + If-Match implemented in skeleton handler + +2013-04-12 jvelilla + + Fixed configurations paths + + Initial import Selenium binding + +2013-04-11 Jocelyn Fiat + + Fixed HTTP_CLIENT_RESPONSE when dealing with redirection before it was + storing some header in the body. now we added redirections: .. which is a + list of redirection informations: - status line - header - and eventual + redirection body (but at least by default, libcurl does not cache body) + Enhanced the http_client library to be able to write directly the downloaded + data into a file (or as convenient thanks to agent). + +2013-04-11 Colin Adams + + Fixed bug in 32/8 bit string existance + + Handle Precondition Failed for If-Match: * where there is no handler for the + resource + +2013-04-10 Jocelyn Fiat + + Fixed HEAD request related issue see + https://github.com/EiffelWebFramework/EWF/issues/53 + +2013-04-05 Jocelyn Fiat + + Cosmetic fixed various indentations Removed useless dependencies for + ewf_ise_wizard project. + +2013-03-30 Jocelyn Fiat + + fixed name of file with class name + +2013-03-29 Jocelyn Fiat + + reuse implementation from WSF_REQUEST to get input data for MIME handlers. + + Fixed MIME multipart form data handler And use content-length value if + provided. + + be sure we got the full content same as content length + +2013-03-27 Colin Adams + + First attempt at WSF_HTTP_PROTOCOL_VERSION + +2013-03-27 Jocelyn Fiat + + Removed WSF_URI_*_ROUTER_HELPER and use instead the + WSF_URI_*_HELPER_FOR_ROUTED_SERVICE (the removed class were not in latest + release, so this is safe to use the new name) Cosmetic + +2013-03-27 Colin Adams + + Further changes in response to review comments by Jocelyn + + now all-safe.ecf compiles again + +2013-03-27 Jocelyn Fiat + + added wsf_html for (un)installation + + Updated all-safe.ecf (add all-stable-safe.ecf that includes only the library, + examples and specific draft lib) + +2013-03-27 Colin Adams + + openid demo fixed + +2013-03-26 Colin Adams + + merging from upstream - stage 4 + + Use class URI + +2013-03-26 Jocelyn Fiat + + Moved more components from CMS to wsf_html. This includes WSF_PAGER, and + feature in WSF_THEME .. including WSF_API_OPTIONS used to compute url and + link. + +2013-03-25 Jocelyn Fiat + + Added self doc to the wsf file system handler Allow to hide the wsf file + system handler from self documentation Better description format handling for + the self doc + +2013-03-22 Jocelyn Fiat + + added wsf_html-safe.ecf to all-safe.ecf + + Extracted the WIDGET and FORM classes out of "cms" component and build the + wsf_html library which also include the previous css lib. + + Fixed default status code for redirection response message object. + + Fixed assertion that were broken with recent delayed header response. Changed + semantic of put_header_lines and add_header_lines, Now the arguments are + iterable of string (i.e the header line) The previous features were not + used, and were not well named. So we removed them, and reused the names for + adpated implementation. + + Fixed self documentation when querying documentation related to a specific + resource (uri, uri-template, ..) Before it was showing only the first found + so if we had "/foo" GET -> FOO_GET_HANDLER "/foo" POST -> FOO_POST_HANDLER It + was showing only the first, now this is working as expected. + + Moved the *_CSS_* class in their own (draft) library, since they are not CMS + specific. + +2013-03-21 Jocelyn Fiat + + Fixing feature comments + + Removed WSF_AGENT_HANDLER since it was an artificial notion, as we have no + common ancestor for WSF_HANDLER having execute (req: WSF_REQUEST; res: + WSF_RESPONSE) + + Now WSF_FILTER_HANDLER is a handler and has formal generic G constrained to + WSF_HANDLER This eases implementation of potential descendants. + + Introduced WSF_ROUTER_SESSION This fixes CQS violation from + WSF_ROUTER.dispatch_and_return_handler (...): ? WSF_HANDLER and related code, + and this is more compliant with concurrency. In addition, the + WSF_ROUTER_SESSION can be enhanced in the future to answer more advanced + needs. + + Fixed WSF_FILE_RESPONSE and WSF_DOWNLOAD_RESPONSE and set the status code to + be Ok by default + +2013-03-19 Jocelyn Fiat + + mimic design of WSF_ROUTED_SERVICE for WSF_FILTERED_SERVICE and update the + filter example to make it simpler and reuse code. + + updated install and uninstall scripts + + added WSF_..._ROUTER_HELPER and made the previous WSF_..._ROUTED_SERVICE + obsolete + + WSF_CORS_OPTIONS_FILTER should not inherit from WSF_URI_TEMPLATE_HANDLER + + Moved all *_CONTEXT_* router related classes into wsf_router_context.ecf + library This makes wsf simpler to discover. And advanced context enabled + handler, mapping, ... are still available for now in wsf_router_context.ecf + library + +2013-03-18 Jocelyn Fiat + + Added deferred WSF_AGENT_HANDLER Added WSF_NOT_IMPLEMENTED_RESPONSE + +2013-03-18 Colin Adams + + refactored for WSF_ROUTED_SKELETON_SERVICE + + prior to refactoring for WSF_ROUTED_SKELETON_SERVICE + +2013-03-17 Colin Adams + + implemented OPTIONS * except for Allow header + +2013-03-16 Colin Adams + + Implemented 414 and 503 responses on WSF_ROUTED_SERVICE + + Implemented 503 and 414 responses in WSF_ROUTED_SERVICE + +2013-03-15 Colin Adams + + Sixth round of contracts for non-Void-safe users + + Fifth round of contracts for non-Void-safe users + +2013-03-15 Olivier Ligot + + Use new upstrem method put_header_key_values + +2013-03-15 Colin Adams + + Third iteration of contracts for non-Void-safe users + +2013-03-14 Colin Adams + + Further contracts for non-Void-safe users + + Response to comments from review "Contracts for non-Void-safe users (take 1)" + + Added non-Void contracts for classes previously flagged by AutoTest + +2013-03-08 Jocelyn Fiat + + Made it compilable with 7.1 + + Factorized code for checkbox and radio input. Renamed `text' and similar to + `title' and similar + + adding back missing uri template library + + Added support for OpenID identity Added user roles management Improvement + CMS_HOOK_FORM_ALTER design. Factorized code into CMS_WIDGET_COMPOSITE Use + general notion of CMS_WIDGET (and CMS_FORM allows CMS_WIDGET, and not just + CMS_FORM_ITEM) Fixed various CMS_WIDGET traversal, and fixed related issue + for CMS forms Fixed CMS_FORM_CHECKBOX_INPUT when no value was set. Added + CMS_FORM_DATA.cached_value .. to pass computed values during validation to + submit actions (mainly for optimization) Added support for @include=filename + in CMS_CONFIGURATION Added CMS_WIDGET_TABLE as filled version of + CMS_WIDGET_AGENT_TABLE (renamed from previous CMS_WIDGET_TABLE) Many + improvements to the CMS_FORM design Some improvements to CMS_MODULE ... + + Use the advanced SED storable to store data on disk (rather than the runtime + storable) + +2013-03-05 Jocelyn Fiat + + Added WITH_HTML_ATTRIBUTE + +2013-03-01 Jocelyn Fiat + + added the notion of site identifier "site.id" (typically this could be a + UUID) + + Also take into account sublink's permission + +2013-02-28 Jocelyn Fiat + + added CMS widgets demonstration in DEMO_MODULE + + add CMS_WIDGET_... to ease html page development. + + improved CMS_CSS_STYLE and WITH_CSS_STYLE + + Move draft\library\security\openid under library\security\openid + + Made it also compilable with compiler < 7.2 + + Added a version of ISE Library URI modified to be compilable with compiler < + 7.2 Fixed openid when redirection is involved Fixed Openid Attribute Exchange + implementation (AX) Added WSF_REQUEST.items_as_string_items: ... for + convenience, and ease integration with other components (such as the new + openid) + + updated relative path + +2013-02-27 Jocelyn Fiat + + OpenID consumer implementation REQUIRES EiffelStudio 7.2 + + First version of OpenID consumer (light implementation) + + Added a way to call a callback on launched and stopped for Nino connector + + Provided a way to report cURL error code back to http_client, via + HTTP_CLIENT_RESPONSE + + Provided `url_encoded_name' on the WSF_VALUE interface + +2013-02-26 Jocelyn Fiat + + Use append_to_html rather than function to_html: STRING this is mainly to + avoid creating useless intermediary strings. + +2013-02-21 Jocelyn Fiat + + Added functionalities to CMS_FORM_.. classes + +2013-02-20 Jocelyn Fiat + + Fixing various form urls, that was not taking into account base url + +2013-02-19 Jocelyn Fiat + + Fixed absolute url computing for CMS + + Code cleaning and use HTTP_DATE instead of duplicating code. + +2013-02-15 Jocelyn Fiat + + Now the cms.ini resolves variable ${abc} ... and key is case insensitive + + keep compilable with EiffelStudio <= 7.1 + + Refactorying the CMS component, to have an effective CMS_SERVICE, and setup + as CMS_SETUP. This way the application is much simpler, no need to implement + deferred feature of CMS_SERVICE. + +2013-02-14 Jocelyn Fiat + + Now also display sublinks if link is expanded. Updated theme + + Fixed register and new password link when the CMS's base dir is not the root + / + + Improve CMS_LINK to easily add children + +2013-02-05 Jocelyn Fiat + + added CMS_FORM_SELECT.select_value_by_text + + remove unwanted console output + +2013-02-04 Jocelyn Fiat + + Reviewed initialization and usage of various CMS_SERVICE urls + + more flexible permission control system ... + + Updated CMS experimental component Fixed various issues with fieldset or + similar not traversed + +2013-01-31 Jocelyn Fiat + + Fixing global EWF compilation + + Updated CMS code. Separated code to have a lib and an example. Improved + design, fixed a few issues related to folder location. This is still + experimental and require more work to be really friendly to use. + + Added ANSI C date time string format support in HTTP_DATE. + + Fixed HTTP_DATE for GMT+ offset (integer value) + + Added HTTP_DATE to ease http date manipulation and optimize code rather than + using EiffelTime's code facilities. Added autotests to `http' lib. + +2013-01-23 Jocelyn Fiat + + Removed eel and eapml contrib/library from EWF Since there are available from + $ISE_LIBRARY + +2013-01-23 Olivier Ligot + + Use execution_variable instead of context This is mainly to be compatibe + with other classes API. In a lot of classes, we define methods like this: + ```Eiffel method (req: WSF_REQUEST; res: WSF_RESPONSE) do ... end ``` With + the context, the signature becomes: ```Eiffel method (ctx: C; req: + WSF_REQUEST; res: WSF_RESPONSE) do ... end ``` So, I can't build a filter + chain where one filter is with context and one is without context (I can't + call WSF_FILTER.set_next (a_next: WSF_FILTER) with a filter that is a + descendant of WSF_CONTEXT_HANDLER). Moreover, having to play with generic + types just to pass some data from one filter to another is a bit overkill + imho. Because this is really what I use contexts for: to pass data from one + filter to the next one. Regarding execution_variable and strong typing, if + we want to achieve these, I realize we could write a class with one getter + and one setter like this: ```Eiffel class TYPED_DATA feature -- Access + user (req: WSF_REQUEST): detachable USER do if attached {USER} + req.execution_variable ("user") as l_user then Result := l_user end end + feature -- Element change set_user (req: WSF_REQUEST; a_user: USER) do + req.set_execution_variable ("user", a_user) end ``` Now, I realize this is a + major change since the last time we talked about this, but at the end, after + having played with both, I prefer the one with execution_variable. + +2013-01-09 Olivier Ligot + + Cross-Origin Resource Sharing initial support Initial support for the + Cross-Origin Resource Sharing specification. This allows JavaScript to make + requests across domain boundaries. Also reviewed the filter example to get + rid of the context and the generic classes (we can actually use + {WSF_REQUEST}.execution_variable and {WSF_REQUEST}.set_execution_variable). + Links: * How to enable server-side: http://enable-cors.org/server.html * + Specification: http://www.w3.org/TR/cors/ * Github: + http://developer.github.com/v3/#cross-origin-resource-sharing + +2012-12-22 Jocelyn Fiat + + Added http_authorization which is now needed by example filter. + + minor changes + +2012-12-20 Jocelyn Fiat + + added WSF_SUPPORT.environment_item + + Added is_available on HTTP_CLIENT_SESSION mainly to check if libcurl is + available. + + Avoid calling ANY.print, prefer io.error.put_string Fixed obsolete calls. + + Added support for server_name in nino, and openshift + + Added support for server name + + updated conneg .ecf + + Added openshift connector classes (for experimentation) + + Added comment to self documentation features + +2012-12-19 Jocelyn Fiat + + Added a few library_target to .ecf to be able to build the tests/all-safe.ecf + that enables us to check quickly the compilation state of EWF, and also + perform refactorying over many projects. + + Breaking changes: added `a_request_methods' argument to + WSF_ROUTER_SELF_DOCUMENTATION_HANDLER.mapping_documentation added similar + argument to WSF_ROUTER_SELF_DOCUMENTATION_ROUTER_MAPPING.documentation + Renamed WSF_ROUTER_METHODS as WSF_REQUEST_METHODS Enhanced + WSF_REQUEST_METHODS with new has_... function Added WSF_ROUTER_VISITOR and + WSF_ROUTER_ITERATOR that may be useful to iterate inside the router. we may + improve the implementation of the router using those visitors in the future. + Improved the WSF_DEFAULT_RESPONSE to embedded suggested items (typically + based on pseudo self documented router) + + Fixed issue in WSF_REQUEST.read_input_data_into when the content is zero + Cleaned the WGI_CHUNKED_INPUT_STREAM and provides access to last extension, + last trailer, ... Improved WSF_TRACE_RESPONSE to support tracing chunked + input back to the client. + + Fixed WSF_RESPONSE chunk transfer implementation and also the optional + extension `a_ext' should now include the ';' Now HTTP_HEADER is an ITERABLE + [READABLE_STRING_8] + + Fixed various assertions. Improved autotests Added target 'server' to be able + to run the server outside the test process. + +2012-12-18 Jocelyn Fiat + + Fixed reading chunked input data When retrieving data block by block, use + 8_192 instead of 1_024 (since 1_024 is too small most of the time) + + Added logger response wrapper, this is mainly to be able to save any response + message to a file. (debugging purpose) + + Added basic support for "Expect" http header i.e: WSF_REQUEST.http_expect: + detachable READABLE_STRING_8 Added WSF_REQUEST.request_time_stamp: + INTEGER_64 + +2012-12-14 Jocelyn Fiat + + Added WSF_DEFAULT_*_RESPONSE Fixed the method not allowed by setting the + Allow: header + +2012-12-13 Jocelyn Fiat + + removed unused local variables + + added code that may be used to avoid breaking compatibility with new Eiffel + Studio 7.2 This is experimental for now. + + Added to WSF_REQUEST - raw_header_data: like meta_string_variable - + read_input_data_into (buf: STRING) - is_content_type_accepted + (a_content_type: READABLE_STRING_GENERAL): BOOLEAN Changed raw_input_data to + return IMMUTABLE_STRING_8 Added WSF_METHOD_NOT_ALLOWED_RESPONSE Added + WSF_TRACE_RESPONSE to respond TRACE request Now Not_found response return + html content if the client accepts, other text/plain Implemented TRACE + response, and Method not allowed as implementation of + WSF_ROUTED_SERVICE.execute_default + + Added missing "context" classes for uri and starts_with mapping+handler (and + helper classes). So that it is address more needs. Factorized code between + "context" and non context classes. + +2012-12-11 Colin Adams + + Actioned Jocelyns comments re. a_req and a_res + +2012-12-10 Olivier Ligot + + Fix {JSON_OBJECT}.hash_code implementation Don't call + {HASH_TABLE}.item_for_iteration when {HASH_TABLE}.off Use {HASH_TABLE}.out + instead + +2012-12-10 Jocelyn Fiat + + Get rid of obsolete scripts (we do not use git submodule anymore, so this is + much easier .. for the users) + +2012-12-07 Jocelyn Fiat + + make it compiles with EiffelStudio 7.1 and 7.2 + +2012-12-06 Colin Adams + + Revert do_get_head patch + +2012-12-05 Jocelyn Fiat + + corrected null connector ecf files + + added tests\all-safe.ecf to compile most of EWF's lib, to quickly check the + compilation state + + use libfcgi(-safe).ecf rather than fcgi(-safe).ecf + + Prepare upcoming support for unicode environment variables + + removed fcgi(-safe).ecf files ... since there renamed libfcgi(-safe).ecf + +2012-12-04 Olivier Ligot + + ise_wizard Unix shell scripts + +2012-12-03 Olivier Ligot + + Fix ise_wizard * ewf.ini was used instead of template.ecf as configuration + file * remove initialize_router otherwise the compilation failed * remove + unused variables + + Logging filter The logging filter is now part of EWF core (before it was + only available in the filter example) and can therefore be reused by others + needing it. Note that this is a first implementation. It can certainly be + improved in the future to support more fine grained logging. + +2012-12-05 Jocelyn Fiat + + added tests\all-safe.ecf to compile most of EWF's lib, to quickly check the + compilation state + + use libfcgi(-safe).ecf rather than fcgi(-safe).ecf + + Prepare upcoming support for unicode environment variables + + removed fcgi(-safe).ecf files ... since there renamed libfcgi(-safe).ecf + +2012-12-04 Olivier Ligot + + ise_wizard Unix shell scripts + +2012-12-03 Olivier Ligot + + Fix ise_wizard * ewf.ini was used instead of template.ecf as configuration + file * remove initialize_router otherwise the compilation failed * remove + unused variables + + Logging filter The logging filter is now part of EWF core (before it was + only available in the filter example) and can therefore be reused by others + needing it. Note that this is a first implementation. It can certainly be + improved in the future to support more fine grained logging. + +2012-12-03 Jocelyn Fiat + + Fixed various compilation issue with new self documentation Improved the self + documentation handler to provide a make_hidden creation procedure + + updated ecf path + +2012-11-26 Jocelyn Fiat + + Added debug clause to detect in WSF_ROUTER.map_with_request_methods the + existing conflicts with similar mapping. Added smart handling of HEAD + request. Exported some internal features of WSF_REQUEST and WSF_RESPONSE to + respectively WSF_REQUEST_EXPORTER and WSF_RESPONSE_EXPORTER + + added debug_output to WSF_ROUTER_MAPPING + +2012-11-25 Jocelyn Fiat + + Included the library base(-safe).ecf which was forgotten by mistake. + +2012-11-24 Colin Adams + + Completed first pass for HTTP 1.1 conformace contracts + + Added framework for HTTP-conforming contracts + +2012-11-23 Jocelyn Fiat + + New design for self documented router. The documentation is built only on + demand. A mapping entry can be hidden for the documentation One can change + the status code when building itself the + WSF_ROUTER_SELF_DOCUMENTATION_MESSAGE + + Made encoder and error library compilable with 6.8 + + Added SHARED_... classes for encoders (html, url, xml, json, ...) + + Updated signatures for the self documentated message + + Added WSF_ROUTER.has_item_associated_with_resource and + item_associated_with_resource Added WSF_ROUTER_MAPPING.associated_resource + Added WSF_ROUTER_SELF_DOCUMENTATION_HANDLER and + WSF_ROUTER_SELF_DOCUMENTATION_MESSAGE to provide a self documentation for + WSF_ROUTER (for now, only HTML) + +2012-11-21 Jocelyn Fiat + + Include the `url' in the http client response. This way, we can get the real + url used by the lib, especially when there are query parameters. + +2012-11-20 Jocelyn Fiat + + Added WSF_ROUTER_ITEM to replace a structure represented with named TUPLE + Added debug_output to ease debugging + + Removed pseudo rest library from draft libraries. + +2012-10-22 Jocelyn Fiat + + Added WSF_REQUEST_UTILITY_PROXY, that provides the WSF_REQUEST_UTILITY + features to a class that implement request: WSF_REQUEST + + Added WSF_ROUTING_CONTEXT_HANDLER + +2012-10-08 Jocelyn Fiat + + Removed generic parameter in WSF_FILTER_HANDLER, since it is useless and make + code heavy + + Updated "filter" example + +2012-10-04 Jocelyn Fiat + + Updated Copyright + + updated copyright + + Added notion of mapping factory, so one can implement a handler without + having to implement new_mapping Added filter context handler Added + WSF_STARTS_WITH_ROUTING_HANDLER and WSF_URI_ROUTING_HANDLER (in addition to + the uri template version) + +2012-10-02 jvelilla + + Fixed wsf_extension.ecf path, in the example RestBucksCRUD. Replace the + assigment attempt with attached syntax + +2012-10-01 Jocelyn Fiat + + Fixed some configuration files (ecf) Fixed various compilation issue Fixed + draft rest library (still experimental and should be removed in the future) + +2012-09-28 Jocelyn Fiat + + Added initial experimentation of a CMS built with Eiffel + + moved wsf_extension inside wsf/extension as wsf/wsf_extension.ecf added + wsf/session as wsf/wsf_session.ecf In descendants of WSF_HANDLER , we can + keep the result of new_mapping as WSF_ROUTER_MAPPING + +2012-09-27 Jocelyn Fiat + + Reviewed the semantic of the handler context. Adapted existing code to fit + the new router design. + +2012-09-25 Jocelyn Fiat + + Applied new ROUTER design to the whole EWF project. + +2012-09-11 Jocelyn Fiat + + Minor implementation changes (feature renaming, ... ) + +2012-09-10 Jocelyn Fiat + + New ROUTER design, much simpler, less generic, easier to extend, and now one + can mix uri map, uri_template map and so on. Update the "tutorial" example. + +2012-09-12 Olivier Ligot + + [FIX] Convertion from HASH_TABLE keys to JSON + +2012-09-11 Jocelyn Fiat + + Added general_encoded_string (..) that accepts READABLE_STRING_GENERAL + +2012-09-10 Jocelyn Fiat + + added WSF_VALUE.is_empty: BOOLEAN + + Added put_expires_string (s: STRING) and put_expires_date (dt: DATE_TIME) + Better implementation for WSF_FILE_RESPONSE (added last modified, and other + caching related info) + +2012-08-28 Jocelyn Fiat + + Fixed source code for building and installing the ISE Wizard + +2012-08-13 jocelyn + + Updated Projects Suggestions (markdown) + + Updated Projects Suggestions (markdown) + + Updated Project suggestions (markdown) + +2012-08-10 Olivier Ligot + + [ADD] Filter: pre-process incoming data and post-process outgoing data + Filters are part of a filter chain, thus following the chain of + responsability design pattern. More information are available in + library/server/wsf/src/filter/README.md + +2012-08-08 Jocelyn Fiat + + removed "getest" since it is duplication with autotest (and we use mainly the + later for regression testing) + + Added JSON_PRETTY_STRING_VISITOR Added converter for ARRAYED_LIST Fixed + STRING_32 to JSON_VALUE issue in ejson.e Added missing new line character at + the end of some files. Cosmetic + +2012-06-29 Jocelyn Fiat + + updated to use WSF_STRING.value instead of obsolete WSF_STRING.string + + Better code for tutorial example. + +2012-06-28 jocelyn + + Updated EWSGI specification: difference in main proposals (markdown) + +2012-06-27 Jocelyn Fiat + + use svn export instead of svn checkout + +2012-06-26 Jocelyn Fiat + + If library/cURL exists, do not copy cURL to contrib/library/network/cURL + +2012-06-22 Jocelyn Fiat + + Added simple console wizard for Eiffel Studio. (It is not very user friendly, + this is a first draft) It should be improved in the future (with GUI, ...) + +2012-06-20 Jocelyn Fiat + + When installing, remove the folder "fonts" from the nino's example + +2012-06-19 Jocelyn Fiat + + Put examples under examples/web/ewf/... + +2012-06-19 Jocelyn Fiat + + IfECF_PATH_UPDATER is defined, let's use it to find ecf_updater executable + +2012-06-18 Jocelyn Fiat + + put everything under contrib for now, eventually svn checkout missing parts + +2012-06-18 Jocelyn Fiat + + Final version of the install scripts. + + Fixed typo and path separators usage in dos batch scripts + + Install script does the same on Windows and Linux + + improved install_ewf.sh , and removed usage of deleted router.ecf + +2012-06-15 Jocelyn Fiat + + Updated install_ewf.sh + + Updated draft library (consider it as draft quality) + + updated eel and eapml from more recent versions. + + Moved eel and eapml under the contrib folder. + + Fixing wrong path for ewsgi connector nino (this was introduced recently when + we moved folder location) + +2012-06-14 Jocelyn Fiat + + Updated structure of EWF, applied Now "nino" is under + contrib/library/network/server/nino (as git merge subtree, and not anymore + as submodule) + +2012-06-13 Jocelyn Fiat + + Change structure of EWF, to follow better categorization + + Better script, do not use default folder without asking. + + Added temporary scripts to install EWF on Windows + +2012-06-11 Jocelyn Fiat + + Adopted convention name and value or values for WSF_VALUE and descendant + (WSF_STRING ...) kept `key' as redirection, and also string as obsolete + redirection. Router: provide a way to pass the request methods without using + manifest string, thanks to WSF_ROUTER_METHODS so instead of using manifest + array or manifest strings, just create an instance of WSF_ROUTER_METHODS for + convenience, WSF_ROUTER provides a few `methods_...' returning prebuilt + WSF_ROUTER_METHODS objects Improved code related to unicode handling in URL, + and parameters (before the framework was doing too much) + +2012-05-30 Jocelyn Fiat + + Added html encoding facility to WSF_STRING Added WSF_STRING.is_empty Improved + HTML_ENCODER to be able to decode a STRING_8 or STRING_32 using + general_decoded_string (s) Improved tutorial example Added precompilation for + WSF library Cosmetic (removed unused locals) + +2012-05-28 Jocelyn Fiat + + Applied recent changes made on EWF Updated copyright + + Now inherit create_router ; but it is still possible to redefine it. Added + some wsf_reponse_message for redirection Use "found" for the redirec_now ... + Added content to the tutorial + +2012-05-25 Jocelyn Fiat + + Added descriptions to WSF_RESPONSE about .send (mesg) Fixed minor issues in + other classes + + Added more content to the tutorial + + Protected export of WSF_RESPONSE_MESSAGE.send_to Added + WSF_DEFAULT_RESPONSE_SERVICE Added simple + WSF_SERVICE_LAUNCHER_OPTIONS_FROM_INI class to load launch option from ini + file. Removed a few obsolete features + + added skeleton for tutorial_i text + + Updated indexing notes started tutorial Sync + +2012-05-15 Jocelyn Fiat + + added some git tips in doc + +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 @@ -7,7 +2027,7 @@ Updated URI Template to follow official RFC6570 -2012-05-07 Jocelyn Fiat +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): @@ -16,10 +2036,7 @@ 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) +2012-05-04 Jocelyn Fiat Removed HTTP_CLIENT_SESSION.post_multipart .. because it was not doing what the name might evoque Restrict export of @@ -31,7 +2048,7 @@ 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 +2012-05-03 Jocelyn Fiat Fixed typo in .ecf .. curl instead of cURL @@ -44,11 +2061,7 @@ 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 +2012-05-02 Jocelyn Fiat Also removing the implicit conversion from STRING to HTTP_*_TYPE @@ -56,27 +2069,15 @@ 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. +2012-04-30 Jocelyn Fiat 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' +2012-04-27 Jocelyn Fiat cosmetic -2012-04-13 Jocelyn Fiat +2012-04-13 Jocelyn Fiat Fixed a last minute regression due to removal REQUEST.chunked_input @@ -90,7 +2091,7 @@ REQUEST.is_chunked_input since it matters that Content-Length is 0 even if there are input (chunked) data. -2012-04-12 Jocelyn Fiat +2012-04-12 Jocelyn Fiat Fixed compilation of samples @@ -107,51 +2108,17 @@ 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. +2012-04-05 Jocelyn Fiat 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 +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 @@ -163,23 +2130,12 @@ 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 +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 +2012-03-20 Jocelyn Fiat Fixing compilation of specific example using the WGI connector directly @@ -189,17 +2145,6 @@ 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) @@ -210,9 +2155,7 @@ Moved mime handler classes under wsf/src/mime/ -2012-03-19 Jocelyn Fiat - - removed unwanted rescue clause +2012-03-19 Jocelyn Fiat Updating EWSGI specification classes @@ -222,21 +2165,12 @@ 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 +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 +2012-03-19 Jocelyn Fiat Improved comment in WSF_RESPONSE.put_response (..) Added WSF_REDIRECTION_RESPONSE class @@ -251,32 +2185,29 @@ 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 +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 +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. +2012-03-13 jfiat + + Better use C_STRING.substring (1, size) instead of C_STRING.string since we + know the exact size and this way, no risk with \0 character inside the string + itself (for binary data..) Added comments + +2012-03-13 Jocelyn Fiat Nino connector: - fixed issue related to `ready_for_reading' now use the `try_...' variant - for now Nino does not support persistent connection, then @@ -293,33 +2224,22 @@ 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 +2012-02-29 Jocelyn Fiat Added assertions to catch if route mapping does not already exists -2012-02-28 Jocelyn Fiat +2012-02-28 Jocelyn Fiat Synchronized with nino and json library -2012-02-17 jvelilla +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 +2012-02-15 Jocelyn Fiat Fixed error visitor due to recent signature changes @@ -332,36 +2252,26 @@ ERROR_HANDLER.remove_synchronized_handler Added comments Added associated autotests -2012-02-14 Jocelyn Fiat +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-14 larryl -2012-02-13 Jocelyn Fiat + Added cURL multi interface support (most APIs) issue#7305157 The multi + interface offers several abilities that the easy interface doesn't. They are + mainly: 1. Enable a "pull" interface. The application that uses libcurl + decides where and when to ask libcurl to get/send data. 2. Enable multiple + simultaneous transfers in the same thread without making it complicated for + the application. 3. Enable the application to wait for action on its own file + descriptors and curl's file descriptors simultaneous easily. More info: + http://curl.haxx.se/libcurl/c/libcurl-multi.html - 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 +2012-02-08 unknown libcurl: Applied a workaround to avoid issue on Win32 (see LIBCURL_HTTP_CLIENT_REQUEST.apply_workaround) Separated the @@ -369,15 +2279,7 @@ 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 +2012-02-07 Jocelyn Fiat Better code to test similar functions but with chunked input @@ -386,16 +2288,10 @@ 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 +2012-02-01 Jocelyn Fiat removed unwanted set_status_code, since we already use put_header to set the status code. @@ -406,7 +2302,7 @@ Improved redirect_now_custom to allow custom status code, custom header, and custom content -2012-01-31 Jocelyn Fiat +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 @@ -416,85 +2312,72 @@ handling list/array parameters fixed postcondition WSF_REQUEST.set_meta_string_variable ... -2012-01-25 Jocelyn Fiat +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) +2012-01-20 Jocelyn Fiat 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) +2012-01-20 manus + + Removed the ECF bounds license file and replaced them with `license.lic' + files. Made sure all license are the Eiffel Forum License 2. + +2012-01-20 Jocelyn Fiat 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 +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 +2012-01-17 Jocelyn Fiat export handler from REQUEST_ROUTER +2012-01-17 Jocelyn Fiat + 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 +2012-01-13 Jocelyn Fiat Synchronized with ejson library Cleaned JSON_ENCODER -2012-01-12 Jocelyn Fiat +2012-01-13 jfiat + + Renamed JSON_STRING.unescaped_string as unescaped_string_8 + code cleaning + + Better support for special character and unicode (\n \r \" ... and \uXXXX + where XXXX is an hexadecimal value) Added features to JSON_STRING - + make_json_from_string_32 (READABLE_STRING_32) - escaped_string_8: STRING_8 - + escaped_string_32: STRING_32 Added associated autotests + +2012-01-12 Jocelyn Fiat Added JSON_ENCODER -2012-01-09 Jocelyn Fiat +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 +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 +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 @@ -502,9 +2385,7 @@ applied write_ as put_ renaming to examples -2011-12-15 Jocelyn Fiat - - Use put_ instead of write_ +2011-12-15 Jocelyn Fiat various minor changes @@ -514,8 +2395,6 @@ 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 @@ -523,14 +2402,7 @@ 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 +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 ...) @@ -541,25 +2413,10 @@ 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 +2011-12-12 Jocelyn Fiat 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 @@ -575,126 +2432,72 @@ WSF_RESPONSE_MESSAGE, and WSF_RESPONSE.put_response (a_response_message) Now WSF_RESPONSE inherit from WGI_RESPONSE -2011-12-10 jvelilla + Handling bad incoming request (keep a check assertion to help during + debugging period) + +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 +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 +2011-12-08 jvelilla Updated restbucksCRUD documentation Added basic two basic examples, refactor rename restbucks to restbucksCRUD -2011-12-07 jvelilla +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 +2011-12-02 Jocelyn Fiat Fixed compilation issue for CGI and libFCGI connector due to recent changes in interface (use READABLE_STRING_8) -2011-12-01 Jocelyn Fiat +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 + various renaming and preparation to merge Thread and SCOOP implementation of + Eiffel Web Nino 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 +2011-12-01 jvelilla Updated Conneg library, added test cases -2011-11-30 jvelilla +2011-11-30 Jocelyn Fiat + + Removed initial Thread for the HTTP_HANDLER, this is not needed here Removed + HTTP_SERVER_SHARED_CONFIGURATION from the library ... not needed by the + library. Added HTTP_SERVER_SHARED_CONFIGURATION to the example to show how + to share the configuration, if needed + +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 +2011-11-25 Jocelyn Fiat - (WGI|WSF)_RESPONSE(*) renamed write_headers_string as write_header_text - HTTP_HEADER.string does not have the ending CRLFCRLF .. but just CRLF - @@ -707,12 +2510,6 @@ 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' @@ -720,8 +2517,6 @@ 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 @@ -736,24 +2531,16 @@ 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 +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 +2011-11-21 Jocelyn Fiat updated Eiffel libfcgi README file @@ -764,28 +2551,33 @@ 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-21 jfiat -2011-11-18 Jocelyn Fiat + Removing autotest dotnet target, since Autotest does not support .Net + platform for now + + Fixed code from autotest tests to remove warnings Fixed getest ejson_test.ecf + configuration file Added script to allow using getest from Windows. Note: I + did not fixed warning from getest tests, we should apply same change already + made for autotest. it seems autotest and getests are doing the same checking, + I would suggest to either remove getest files or find a way to share test + code between getest and autotest tests. + +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 +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. +2011-11-17 Jocelyn Fiat Renamed "ext" folder as "contrib" folder and reorganized a little bit Renamed any *_APPLICATION as *_SERVICE mainly because those components such as @@ -793,80 +2585,52 @@ entry, and "service" describe them better Minor implementation change in WSF_REQUEST Cosmetics -2011-11-16 Jocelyn Fiat - - handle last run failure +2011-11-16 Jocelyn Fiat 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 +2011-11-14 Jocelyn Fiat Added various README.md (using the markdown syntax) - updated README with links to sub READM.md - - sync with Eiffel Web Nino + Applied the removal of HTTP_INPUT_STREAM and HTTP_OUTPUT_STREAM to the + example. 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 +2011-11-10 Jocelyn Fiat - Added is_request_method (STRING): BOOLEAN to help users + Removed HTTP_(INPUT,OUTPUT)_STREAM, since it is unlikely that we use + something else than TCP_STREAM_SOCKET This way, we remove one indirection for + users, and get smaller code. -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 +2011-11-04 Jocelyn Fiat sync with nino and applied changes to connector + removed useless "a_name" argument Fixed typo in on_launched + 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 +2011-11-03 Jocelyn Fiat applied recent changes from Nino -2011-11-02 Jocelyn Fiat + added access to the effective port that the server is listening to (useful + when we set port to 0 it use a random free port) added verbose , so that we + write message to the console only if desired. + +2011-11-02 Jocelyn Fiat removed compliance on ewsgi, since now we target WSF applied recent changes related to WSF_VALUE @@ -877,15 +2641,10 @@ renamed WSF_(.*)_VALUE as WSF_$1 -2011-10-31 Jocelyn Fiat - - Fixed obsolete calls, and compilation error. +2011-10-31 Jocelyn Fiat 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 @@ -893,26 +2652,10 @@ 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 +2011-10-27 Jocelyn Fiat Fixed a previously character changes in WSF_REQUEST (related to safe_filename), and modified the implementation to use inspect Fixed the @@ -920,35 +2663,26 @@ added script to update current git working copy and submodules recursively +2011-10-27 Jocelyn Fiat + cosmetic, or minor changes -2011-10-27 jvelilla +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 +2011-10-24 Jocelyn Fiat 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 +2011-10-23 jvelilla 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 +2011-10-21 Jocelyn Fiat Applied recent changes on WGI_ and WSF_ Moved classes away from ewsgi, restructured, cleaned @@ -958,108 +2692,95 @@ 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 +2011-10-19 Jocelyn Fiat First try to get a limited WGI_ and use WSF_ as default framework -2011-10-21 jvelilla +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 +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 +2011-10-13 jvelilla Added handle_resource_conflict_response feature to handle 409 reponse, Cosmetic. -2011-10-12 Jocelyn Fiat +2011-10-12 Jocelyn Fiat Added data and file for post and put request methods +2011-10-12 Jocelyn Fiat + 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 +2011-10-12 Jocelyn Fiat 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 +2011-10-11 jvelilla Update order_handler, fix json_order_converter -2011-10-11 Jocelyn Fiat +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 +2011-10-10 Jocelyn Fiat added submodule ext/ise_library/curl to use the updated Eiffel cURL from ISE. - cosmetic - -2011-10-07 Jocelyn Fiat +2011-10-07 Jocelyn Fiat added http diagrams found on the web - Added the possibility to specify the supported content types Added FIXME +2011-10-07 Jocelyn Fiat - Cosmetic + Added license.lic and copyright to Javier + +2011-10-07 jfiat + + Minor changes + cosmetics Added conversion from STRING to JSON_STRING to help + users. + +2011-10-07 Jocelyn Fiat 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 +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 +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 +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 @@ -1067,29 +2788,7 @@ 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 +2011-09-28 Jocelyn Fiat 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 ... @@ -1104,12 +2803,16 @@ restructured ewsgi to avoid too many sub cluster -2011-09-28 jvelilla +2011-09-28 jvelilla Updated Restbucks examples, handle not method allowed in a better way, added the readme file. -2011-09-26 Jocelyn Fiat +2011-09-27 jfiat + + Be sure to set the Result /= 0 (i.e ECURLE_OK) when error occurred. + +2011-09-26 Jocelyn Fiat fixed compilation of rest example @@ -1118,104 +2821,71 @@ 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 +2011-09-23 Jocelyn Fiat Updated changelogs.txt sync with nino and doc +2011-09-23 Jocelyn Fiat + 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. +2011-09-22 Jocelyn Fiat Made all libraries compilable in any mode (voidsafe or not) Fixed related examples -2011-09-22 jvelilla +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 +2011-09-21 Jocelyn Fiat 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 +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 +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 +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 +2011-09-14 Jocelyn Fiat Simplified interface of "router" library classes @@ -1234,13 +2904,7 @@ *_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 +2011-09-13 Jocelyn Fiat Added first draft for RESTful library note: the interfaces are likely to change in the future @@ -1249,7 +2913,7 @@ adding routing handler few renaming -2011-09-09 Jocelyn Fiat +2011-09-09 Jocelyn Fiat changing design to use generic instead of anchor types @@ -1259,53 +2923,41 @@ /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 +2011-09-07 Jocelyn Fiat 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-09-05 jvelilla -2011-08-30 Jocelyn Fiat + Fixed ecf files that cause a cat-call in the example web server. + +2011-08-30 Jocelyn Fiat Changed prefix from EWSGI_ to WGI_ Changed meta variable type to READABLE_STRING_32 -2011-08-29 Jocelyn Fiat +2011-08-30 Jocelyn Fiat + + Changed prefix class name from EWSGI_ to WGI_ changes in interface for + REQUEST and RESPONSE + +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 +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, @@ -1315,19 +2967,17 @@ 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 +2011-08-18 Jocelyn Fiat code cleaning, and prepare for internal review -2011-08-04 Jocelyn Fiat +2011-08-02 jocelyn - enhanced the ERROR_HANDLER + Updated EWSGI : open questions (markdown) -2011-08-02 Jocelyn Fiat + Updated EWSGI: open questions (markdown) + +2011-08-02 Jocelyn Fiat minor improvements on response_as_result code @@ -1335,9 +2985,7 @@ add "write_headers_string" to RESPONSE_BUFFER -2011-08-01 Jocelyn Fiat - - sync wiki +2011-08-01 Jocelyn Fiat 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) @@ -1351,34 +2999,26 @@ 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 +2011-07-29 Jocelyn Fiat 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 +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 +2011-07-27 Jocelyn Fiat added script to test compilations of .ecf in EWF @@ -1412,11 +3052,11 @@ the future) removed any implementation from GW_REQUEST, and put it in GW_REQUEST_IMP -2011-07-26 Jocelyn Fiat +2011-07-26 Jocelyn Fiat replace write_string by write in RESPONSE -2011-07-25 Jocelyn Fiat +2011-07-25 Jocelyn Fiat various alternative implementation for response @@ -1424,14 +3064,12 @@ interface Redesigned the uploaded file part to be more object oriented Move some implementation from REQUEST to REQUEST_IMP -2011-07-22 Jocelyn Fiat +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) @@ -1439,15 +3077,11 @@ added URI_TEMPLATE_MATCH_RESULT -2011-07-21 Jocelyn Fiat - - sync +2011-07-21 Jocelyn Fiat updated README - updated README - -2011-07-20 Jocelyn Fiat +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 @@ -1460,29 +3094,21 @@ 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 +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 +2011-07-15 Javier Velilla + + Refactor to use the new library structure convention. + +2011-07-14 Jocelyn Fiat rename new_request_context by new_request -2011-07-13 Jocelyn Fiat - - cosmetic +2011-07-13 Jocelyn Fiat renamed GW_REQUEST_CONTEXT as GW_REQUEST @@ -1493,15 +3119,11 @@ Make a simple hello world based on nino -2011-07-12 Jocelyn Fiat +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 @@ -1509,26 +3131,310 @@ 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 +2011-07-12 Jocelyn Fiat + + let's have a nino-safe.ecf and also a nino.ecf for non void-safe system + +2011-07-11 jvelilla + + Added test cases from getest to autotest. First version. + +2011-07-08 Jocelyn Fiat focus on GW_APPLICATION -2011-07-07 Jocelyn Fiat +2011-07-07 Jocelyn Fiat a few renaming better GW_ENVIRONMENT interface -2011-07-06 Jocelyn Fiat +2011-07-07 jfiat + + Converted the autotest test suite to void-safety + cosmetics + + Now if you want to use the json utilities for gobo, you just need to include + the json_gobo_extension.ecf (note that the related gobo classes are not + void-safe) + cosmetics + +2011-07-07 jvelilla + + Updated eJSON to use Eiffel 6.8 version. Basically the changes are: Replace + ? by detachable indexing by note removing `is' from features, and in some + places replaced by = In the ecf now we need to include every gobo library, + because the gobo.ecf, exclude libraries that are needed. TODO: the test-suite + is not void-safety. + +2011-07-06 jvelilla + + Updated History and Readme files. + +2011-07-06 Jocelyn Fiat updated doc -2011-07-05 Jocelyn Fiat +2011-07-05 Jocelyn Fiat cosmetic, license, copyright +2011-07-05 jocelyn + + Updated Tasks Roadmap (markdown) + + Updated Tasks (markdown) + +2011-07-05 Jocelyn Fiat + added doc/wiki (wiki from github) First draft for the ewsgi spec -2011-06-29 Jocelyn +2011-06-01 Jocelyn Fiat - Let's start the Eiffel Web Framework + Fixed the HTTP_SERVER.shutdown_server + +2011-05-30 Jocelyn Fiat + + left adjust request_header_map items. + +2011-05-28 Javier Velilla + + Update Readme files + + Commit Jocelyn changes. + +2011-05-27 Jocelyn Fiat + + Reset values after processing the request Added port information when + starting the server + + Added force_single_threaded option Modified the interface of process request + default port is now 80 + + Moving things around to make it more structured. and turn into library + + abstracted the HTTP_HANDLER to let the user integrate at the level of its + choice (either very early so handle itself the header handling, or later to + reuse existing code) + +2011-05-26 Jocelyn Fiat + + A few change to make it more customizable and prepare integration to + EiffelWebReloaded (see on github) + +2011-05-20 Javier Velilla + + Import HTTPD Eiffel + +2011-01-13 manus + + * Use READABLE_STRING_GENERAL instead of STRING_GENERAL for routines + expecting a string. This enables us to use IMMUTABLE_STRINGs as argument + without conversion. * As a consequence we are also now using `same_string' + instead of `is_equal' to compare strings which will handle any type of + strings. * Enforced the rule that arguments are READABLE_STRING_GENERAL and + queries are STRING_32 when unicode is expected. * The most delicate part of + the change was the update of the encoding library. Now we have two + queries:last_converted_string_32 and last_converted_string_8 in addition of + the typeless last_converted_string. The idea is that if you know that you are + converting to something where characters are at least 2 bytes wide, you know + that you have to use STRING_32, otherwise it will be STRING_8. * Unlike + STRING_GENERAL, READABLE_STRING_GENERAL does not have a conversion to + STRING_32 and thus in a few places we had to use `as_string_32' for explicit + conversion which I found better. + +2010-03-16 manus + + Moved the experimental branch to be the default for libraries. + +2010-03-09 jvelilla + + Removed obsolete cluster. + + Added autotest test suite + +2010-03-08 paul.cohen + + Added getest based test program + +2010-03-08 jvelilla + + Updated Eiffel configuration file, updated to the new clusters + +2010-03-08 paul.cohen + + Ported r75 (all JSON value classes) from POC_CONVERTERS_FACTORY branch to + trunk + + Merged converters and factory classes from POC_CONVERTERS_FACTORY to trunk + + New directory layout created + +2010-03-05 jvelilla + + Added History, Readme and License files + +2009-08-25 larryl + + Added automatic license files for docking and cURL library + +2009-08-04 jfiat + + Optimized code, and removed extra dependencies. Added void-safe version + +2009-05-18 dfurrer + + - Adding the necessary platform-specific implementations (stubs atm) to build + EiffelStudio using the Cocoa Vision2 implementation (without GTK+ + dependencies). - There is a new target "bench_cocoa" in ec.ecf which builds + the native Mac version of EiffelStudio + +2009-05-18 larryl + + Updated cURL library to use API wrapper library Then removed useless classes + such as {API_LOADER} {API_LOADER_IMP}, removed useless library references + such as Vision2 and WEL + +2009-05-01 manus + + Updated to 1-5-0 schema version of ECFs. + +2009-04-09 manus + + Use new `note' syntax. + +2009-03-19 jfiat + + Added curl_easy_getinfo. Associated constants and also CURLOPT_USERPWD. Minor + optimization and cosmetics. + +2009-03-18 jfiat + + Cosmetic + Optimization + Assertion + Void-safety (no significant interface + changes) + +2009-02-27 larryl + + Added features related with curlopt_readfunction (for setting and using read + function), so users can read data from local machine and send the data to + server. Added curlopt_put and other constance to {CURL_OPT_CONSTATNS} which + used by {CURL_EASY_EXTERNALS} Contributed by Heiko Gering + +2009-02-24 manus + + Use new syntax for object test and attached/detachable type. + +2009-02-04 manus + + Added back vision2 since used for the API_LOADER_IMP on Unix but this time + with an explicit conditional. + + Made the cURL library void-safe. + +2008-12-29 manus + + Removal of `is' keyword. Replacement of `is' by `=' for constant definitions. + Replaced `indexing' by `note'. + +2008-12-01 manus + + Moved API_LOADER class to where it was used, i.e. the cURL library. + +2008-08-29 jvelilla + + Add descriptions. Change in skip_withe_spaces to handle newline %N and + carriage Return %R + +2008-08-27 berend + + SmartEiffel doesn't have is_space. + +2008-08-25 jvelilla + + Add accept method (JSON_VISITOR), remove is_xxx queries, remove to_json + feature. Improve comments + + Add Visitor Pattern , JSON_VISITOR and PRINT_JSON_VISITOR + +2008-08-05 berend + + Reformatted code to Gobo standard. + +2008-06-09 jvelilla + + Add new files to test ejson, based on json t test material + http://www.json.org/JSON_checker/test.zip + + Update JSON_OBJECT, put routine, now follows Eiffel Style based on HAST_TABLE + + Update Parser with is_parsed. Update parse_string + +2008-05-25 jvelilla + + Update test + + Update JSON_VALUE and JSON_OBJECT interface + + CDD classes + +2008-05-24 jvelilla + + Update JSON_STRING rutine is_equal Update JSON_OBJECT new features (has_keys, + item,get_keys), and fixed an incorrect use of HASH_TABLE + + eJson tests initial import + + eJson initial import + +2008-03-05 larryl + + Use precondition instead of raising an exception. Fixed bug#14062: CURL + dynamic library not found exception is causing an internal failure in WEL + +2008-02-29 larryl + + Raise an exception when cURL dynamic library not found. + +2008-01-09 larryl + + Added `global_cleanup' which declared as curl_global_cleanup() in C. Added + comments. + +2007-12-31 larryl + + Added http header related features. It means we can change http header by + setting a list ourself. Wrapped more cURL constants. Added `release_item' + in {CURL_FORM} which is useful to clean the {CURL_FORM} generated by + {CURL_EXTERNALS}.formadd_string_string. + +2007-12-07 jfiat + + Fully automated EiffelStudio's building using geant scripts: It integrates + part of the work done by "es-make" project from ETH (mainly on the checker + script) This is a first step in rewriting the previous + $EIFFEL_SRC/scripts/*.eant scripts to build 'ec' and make a new delivery. + Added a few standalone geant scripts in the EiffelStudio's source code, to + ease the compilation. + +2007-12-07 manus + + Ensured that the library also works in finalized mode. The issue is that in + finalized mode more than one copy of `eiffel_curl.h' could be present, + meaning that multiple values of each static declared variables could be + present at run-time and in one case, one was properly initialized, but not + the other. Fixes bug#13671. + +2007-11-18 manus + + Fixed various errors in the C interface. Use new C external syntax. + +2007-11-08 larryl + + Improved cURL wrapper library. We can write functions from curl_easy_setopt + in pure Eiffel now. Before we have to implement the functions in C. + +2007-10-30 larryl + + Made cURL wrapper library works on Linux. + +2007-10-26 larryl + + We can start our executables even without dll (so) files. diff --git a/README.md b/README.md index 029f4f1e..9733ef34 100644 --- a/README.md +++ b/README.md @@ -40,9 +40,9 @@ Tasks and issues are managed with github issue system * And visual dashboard: https://waffle.io/eiffelwebframework/ewf ## Requirements -* Compiling from EiffelStudio 7.2 to 13.11 and more recent version of the compiler. -* Developped using EiffelStudio 13.11 (on Windows, Linux) -* Tested using EiffelStudio 13.11 with "jenkins" CI server (not anymore compatible with 6.8 due to use of `TABLE_ITERABLE') +* Compiling from EiffelStudio 14.05 and more recent version of the compiler. +* Developped using EiffelStudio 15.05 (on Windows, Linux) +* Tested using EiffelStudio 15.05 with "jenkins" CI server (not anymore compatible with 6.8 due to use of `TABLE_ITERABLE') * The code have to allow __void-safe__ compilation and non void-safe system (see [more about void-safety](http://docs.eiffel.com/book/method/void-safe-programming-eiffel) ) ## How to get the source code?