2012-05-14  Jocelyn Fiat

  Rather use (READABLE_)STRING_GENERAL for argument instead of _8 or _32
  variant Better design to set the WSF_REQUEST.path_parameters especially
  handle the case where the request goes trought more than one route (could be
  the case when using WSF_ROUTING_HANDLER)

  Updated URI Template to follow official RFC6570

2012-05-07  Jocelyn Fiat

  Reviewed WSF_REQUEST.item (..) and items  to look into Form, Query, and Path
  (cookie are excluded for security) Added WSF_REQUEST.path_parameter (a_name):
  detachable WSF_VALUE - fill path_parameters using
  `import_raw_path_parameters" when executing the route - reset to previous
  value with reset_path_parameters (..), just in case the request is executed
  via severals routes.

2012-05-04  Jocelyn Fiat

  Reverted back to export upload_data and upload_filename to ANY (and related
  features)

  Removed HTTP_CLIENT_SESSION.post_multipart .. because it was not doing what
  the name might evoque Restrict export of
  HTTP_CLIENT_REQUEST_CONTEXT.upload_data and upload_filename (and related) to
  .._SESSION and .._REQUEST this is mainly internal data, and is more about
  implementation than interface

  Now the http_client will send the form parameters urlencoded if this is
  possible (instead of multipart form data)  Note for now, the library does not
  support sending file and form parameters at the same time.

2012-05-03  Jocelyn Fiat

  Fixed typo in .ecf .. curl instead of cURL

  Added geant scripts to compile EWF

  Improved the libcurl implementation of http_client by adding
  HTTP_CLIENT_SESSION.is_debug: BOOLEAN if True, this display verbose debug
  information in console Implemented uploading of file for PUT and POST
  requests Refactored LIBCURL_HTTP_CLIENT_REQUEST to free used pointer, and
  also ease extension of the class if needed. Updated cURL library with
  addition of {CURL_EXTERNALS}.slist_free_all (..)

2012-05-02  Jocelyn Fiat

  do not use implicit conversion from HTTP_CONTENT_TYPE

  Fixed wrong signature should be READABLE_STRING_32 instead of _8

  Also removing the implicit conversion from STRING to HTTP_*_TYPE

  Removed implicit conversion from HTTP_CONTENT_TYPE to STRING_8 because it
  could be a source of bug due to hidden conversion (and parameters) Applied
  changes to autotest cases Cosmetic

2012-04-30  Jocelyn Fiat

  Added comments Added `url' to compute the url from base_url, path and query
  parameters

  Fixed error in URL encoding, according to the RFC3986, space should not be
  encoded with '+' but with percent encoding.

  Fixed signature issue, the argument `name' should be READABLE_STRING_32

  Code cleaning

  Added specific helper function related to `charset' parameter

2012-04-27  Jocelyn Fiat

  added postcondition status_reason_phrase_unset  to `set_status'

  cosmetic

2012-04-13  Jocelyn Fiat

  Fixed a last minute regression due to removal REQUEST.chunked_input

  Added WSF_ROUTER.pre_route_execution_actions: ACTION_SEQUENCE [like route]
  This way, one can add logger hook to router, to see which "route" was taken
  by the request.

  Made WGI_CHUNKED_INPUT_STREAM inherits from WGI_INPUT_STREAM Merged
  REQUEST.input and REQUEST.chunked_input Now REQUEST.input handles directly
  the chunked transfer encoding, or the non chunked. Kept
  REQUEST.is_chunked_input since it matters that Content-Length is 0 even if
  there are input (chunked) data.

2012-04-12  Jocelyn Fiat

  Fixed compilation of samples

  Fixed compilation

  Now WGI_RESPONSE.set_status_code (..) has a new argument to pass optional
  custom reason phrase. This is a minor breaking change (but prior to the first
  release, so acceptable) And then it is now possible to precise a custom
  reason phrase (useful for 4xx and 5xx response)  At the WSF_RESPONSE level,
  the status code is now sent only when the header are sent. thus, it is
  possible to change the status code as long as no header is sent. (in the
  future, we should also try to delay the sending of headers)  Removed
  WGI_RESPONSE.put_header_lines (..) which was not used, and WGI is not meant
  to provide such user friendly features Now this is available directly on
  WSF_RESPONSE

2012-04-06  Jocelyn Fiat

  updated to EiffelWebFramework/EWF

  sync with json lib.

  Sync with wiki

  Use https://github.com/EiffelWebFramework/EWF.git as master

2012-04-05  Jocelyn Fiat

  Added `transfered_content_length' to WSF_RESPONSE to provide the information
  to application This can be used to build logs for instance.

  Relaxed WSF_REDIRECTION_RESPONSE.set_content (.., ..) to allow Void for
  content type in order to use the one set in header or the default one.

  Removed default handler for WSF_ROUTER Added 	WSF_ROUTE to replace a TUPLE
  [H, C] WSF_ROUTER.route (req): detachable WSF_ROUTE WSF_ROUTER.execute_route
  (a_route, req, res) To help usage of Routers Remove WSF_HANDLER_CONTEXT
  obsolete features. Added comments

2012-03-27  Olivier Ligot

  [REM] Remove unneeded precondition

  [IMP] Ignore *.swp files

2012-04-02  Jocelyn Fiat

  removed obsolete message.

2012-03-27  Olivier Ligot

  [REM] Remove unneeded precondition

  [IMP] Ignore *.swp files

2012-03-23  Jocelyn Fiat

  Renamed same_media_type as same_simple_type Added comments

  updated tests.ecf

  Added HTTP_MEDIA_TYPE  (maybe it will just replace the HTTP_CONTENT_TYPE
  later) renamed .media_type as .simple_type for now allow more than one
  parameters

  Use media_type as replacement for type_and_subtype_string in
  HTTP_CONTENT_TYPE

  Added class HTTP_CONTENT_TYPE to help manipulation of Content-Type value Now
  WSF_REQUEST return a HTTP_CONTENT_TYPE if available Adapted WSF_MIME_HANDLER
  to use this new class Added one manual autotest to test MIME handler

2012-03-21  Jocelyn Fiat

  in WSF_RESPONSE, `put_header' now call `put_header_text' Removed unused local
  variable

  Fixed very bad mistake where no Result was ever set for WSF_REQUEST.item (..)

2012-03-20  Jocelyn Fiat

  fixed compilation issue  (typo)

  Do not try to compile_all in "dev" folder

  Reverted a previous change, we should not truncated Content-Type after ; In
  the case of multipart/form-data  the parameter "boundary=" is essential

  Use WSF_DEFAULT_SERVICE for the test echo server

  Fixing compilation of specific example using the WGI connector directly

  Added WSF_SERVICE.to_wgi_service to ease direct integration with existing WGI
  components

  Relaxed access to `send_to', now it is exported again to avoid breaking
  existing code.

  remove unused local variable

  WSF_REQUEST.content_type should keep only the relevant part of the content
  type and forget about the eventual parameters (charset, name) ...  note: it
  is possible to query meta_string_variable ("CONTENT_TYPE") to get the
  complete Content-Type header

  Added HTTP_HEADER.(put|add)_content_type_with_parameters (...)

  removed obsolete

  Implemented WSF_RESPONSE.put_error (...) and related Added
  WSF_RESPONSE.put_character Renamed  WGI_OUTPUT_STREAM.put_character_8 as
  put_character  to follow style of put_string  (and not put_string_8)
  Refactored the WSF_DEFAULT_SERVICE_LAUNCHER Added WSF_DEFAULT_SERVICE to be
  more user friendly Splitted the wsf/default/ libraries to have
  wsf/connector/... and being able to handle more than one connector in the
  same application

  Moved mime handler classes under wsf/src/mime/

2012-03-19  Jocelyn Fiat

  removed unwanted rescue clause

  Updating EWSGI specification classes

  Removed WGI_RESPONSE.write (..) Replaced any internal call to
  WGI_RESPONSE.write () by the associated implementation (i.e 
  output.put_string (...)  ) Added WGI_OUTPUT_STREAM.put_crlf  Renamed
  WSF_RESPONSE.put_response (a_message) as  `send (a_message)'
  WSF_RESPONSE_MESSAGE.send_to (res)  is now exported only to WSF_RESPONSE

2012-03-19  Berend de Boer

  Avoid another indirection.

  status must be set, else WGI_SERVICE.execute will report the postcondition
  violation.  Conflicts:  library/server/wsf/router/wsf_handler.e

  Minor code cleanup/typo fix.

2012-03-17  Berend de Boer

  Move wgi_service spec to its own directory else I get a class conflicts with
  compile_ise.ecf generated by gexace.

2012-03-19  Jocelyn Fiat

  Improved comment in WSF_RESPONSE.put_response (..) Added
  WSF_REDIRECTION_RESPONSE class

  Added WSF_RESPONSE_HANDLER based on WSF_RESPONSE_MESSAGE The descendant has
  to implement the function  response (ctx: C; req: WSF_REQUEST):
  WSF_RESPONSE_MESSAGE  Added related features and class in WSF_ROUTER to be
  able to use agent easily.

  Refactored WSF_HANDLER_CONTEXT - removed path_parameter - added `item' to
  include WSF_REQUEST.item - marked obsolete `parameter'  The goal is to remove
  confusion, remove URI_TEMPLATE specific `path_parameter' and provide a way to
  use ctx.item (..) to also include meta variable, query, form, ... items

  Use local variable to speed up access to `input'

2012-03-16  Jocelyn Fiat

  Applied wsf_extension creation, and classes moved from wsf to wsf_extension

  Created wsf_extension, and moved some classes from wsf to wsf_extension
  WSF_HANDLER_HELPER WSF_RESOURCE_HANDLER_HELPER WSF_HANDLER_ROUTES_RECORDER

  applied removal of HTTP_HEADER.put_status (..)

  Removed HTTP_HEADER.put_status (...) It is not recommended to send the status
  code as part of the HTTP Header, so let's remove this ambiguity and do not
  encourage EWF user to use it

  Major renaming, adopt the WSF_ prefix for all classes under "wsf", and
  simplify some class names Removed in WGI_INPUT_STREAM, the assertion
  "same_last_string_reference" Copyright updates

2012-03-13  Jocelyn Fiat

  Fixed compilation of draft/library/server/request/rest/tests/.. Note the
  "rest" library will not be maintained since this is not REST.

  precise that library/server/request/router is now part of "wsf" library and
  not anymore independant library.

  Nino connector: - fixed issue related to `ready_for_reading'  now use the
  `try_...' variant - for now Nino does not support persistent connection, then
  we have to respond with "Connection: close"  REQUEST_FILE_SYSTEM_HANDLER: -
  added not_found_handler and access_denied_handler, so that the user can
  customize related response  WSF_REQUEST and WSF_VALUE: - modified how
  uploaded file are handled, fixed various issues, and added WSF_UPLOADED_FILE
  (it is a WSF_VALUE)  WSF_VALUE: - added change_name (a_name: like name) -
  added url_encoded_name to other WSF_values  WSF_REQUEST: - added `destroy' to
  perform end of request cleaning (such as deleting temp uploaded files) -
  renamed `raw_post_data_recorded' as `raw_input_data_recorded', and related
  feature - do not store the RAW_POST_DATA in meta variable anymore, but in
  WSF_REQUEST.raw_input_data is asked  Added WSF_HTML_PAGE_RESPONSE to help
  user  WSF_REPONSE.redirect_... now use "temp_redirect" as default instead of
  "moved_permanently" which is specific usage  Removed many obsolete features.

2012-02-29  Jocelyn Fiat

  use https:// url for git submodules

  Added assertions to catch if route mapping does not already exists

2012-02-28  Jocelyn Fiat

  Synchronized with nino and json library

2012-02-17  jvelilla

  Refactor REQUEST_RESOURCE_HANDLER_HELPER to figure out the transfer encoding:
  Chunked. Added a new method to retrieve_data independently if the transfer is
  chunked or not. Updated ORDER_HANLDER to use this new feature. Sync with
  Jocelyn repo

2012-02-16  Jocelyn Fiat

  Minor correction, to avoid returning 200 as status code, when the client can
  not connect

2012-02-15  Jocelyn Fiat

  fixed compilation

  sync with cURL library

  Fixed error visitor due to recent signature changes

  renamed (add|remove)_synchronized_handler as (add|remove)_synchronization

  Removed tests target from encoder(-safe).ecf (now there is a tests-safe.ecf
  in folder tests)

  Fixed ERROR_HANDLER.destroy Fixed and export
  ERROR_HANDLER.remove_synchronized_handler Added comments Added associated
  autotests

2012-02-14  Jocelyn Fiat

  Better signature for encoders Split library .ecf and the autotest .ecf

  added postcondition to ensure the body string set to the response, is the
  same reference this is important, since sometime we just do rep.set_body (s)
  s.append_string ("..")

  Added DEBUG_OUTPUT to ERROR, since this is convenient during debugging

  Added notion of synchronization between error handler this is convenient to
  integrate two components using their own ERROR_HANDLER (not sharing the same
  object)

  use WSF_PAGE_RESPONSE, instead of reimplementing it ourself

2012-02-13  Jocelyn Fiat

  added a JSON encoder test case

2012-02-10  Olivier Ligot

  [FIX] libfcgi.so location  On Ubuntu 10.04 LTS, libfcgi.so is in /usr/lib
  instead of /usr/local/lib

2012-02-08  Jocelyn Fiat

  added a case in test_json_encoder

2012-02-08  unknown

  libcurl: Applied a workaround to avoid issue on Win32 (see
  LIBCURL_HTTP_CLIENT_REQUEST.apply_workaround) Separated the
  http_client-safe.ecf and test-safe.ecf Added
  HTTP_CLIENT_SESSION.set_max_redirects Fixed broken test due to formatting
  trouble.

2012-02-08  Jocelyn Fiat

  fixed http_client tests

2012-02-08  jvelilla

  Updated content

2012-02-07  Jocelyn Fiat

  Better code to test similar functions but with chunked input

  Improved the WSF_PAGE_RESPONSE to be more flexible and allow to change some
  values as expected.

  Added support for chunked input data  (see Transfer-Encoding: chunked)

  Added HTTP_HEADER.append_header_object and append_array. This is helpful to
  "merge" two HTTP_HEADER and provide user friendly features

  Added proxy, at least to make it is possible to use http://fiddler2.com/ to
  inspect the traffic.

2012-02-01  Jocelyn Fiat

  Fixed wrong code for postcondition on HTTP_HEADER.string  Patch provided by
  Paul-G.Crismer

  removed unwanted set_status_code, since we already use put_header to set the
  status code.

  Eventually fixing trouble with c_strlen being over capacity (added this for
  testing, and while waiting a fix from EiffelcURL)

  Improved redirect_now_custom to allow custom status code, custom header, and
  custom content

2012-01-31  Jocelyn Fiat

  Fixed usage of lst[] in web form, now we are url-decoding the name because
  the [] could escaped... Fixed bad code for assertion related to variable
  url-encoded name

  added REQUEST_HANDLER_CONTEXT.string_array_path_parameter (...) to help user
  handling list/array parameters fixed postcondition
  WSF_REQUEST.set_meta_string_variable ...

2012-01-25  Jocelyn Fiat

  Make sure to return a response Added precondition to check URI_TEMPLATE is
  valid

2012-01-23  Jocelyn Fiat

  Fixed issue with WSF_FILE_RESPONSE not setting the status code Added
  Last-Modified

  Fixed wrong code for postcondition in unset_orig_path_info

  added "conversion" to ease the use of HTTP_HEADER

2012-01-20  Jocelyn Fiat

  fixed compilation (was not up to date with tests.ecf)

  Corrected remaining issue related to recent addition of
  REQUEST_ROUTER.make_with_base_url And applied removal of format_name and
  format_id, and replaced by accepted_format_name, ...

  Do not add again ctx.headers, since it is already "imported" during the
  creation of Current request (see HTTP_CLIENT_REQUEST.make)

  Removed any "format" related query from router lib, this is too application
  specific to be there. Better handling of base_url for REQUEST_ROUTER

2012-01-19  Jocelyn Fiat

  separate library .ecf and tests .ecf merged tests .ecf for draft 05 and
  current implementation

  Fixed WSF_REQUEST.script_url (..) for clean path Added related autotests

2012-01-17  Jocelyn Fiat

  Don't forget to put Content-Length: 0  for redirect without any content

  export handler from REQUEST_ROUTER

  REQUEST_ROUTER now inherit from ITERABLE [..]

  Send the Status code, as an header line  Status: code reason

  use READABLE_STRING_8 instead of STRING_8

  According to http://www.fastcgi.com/docs/faq.html#httpstatus send the Status
  code, as an header line  Status: code reason

2012-01-16  Jocelyn Fiat

  Do not send any Status line back to the FastCGI client

2012-01-13  Jocelyn Fiat

  Synchronized with ejson library Cleaned JSON_ENCODER

2012-01-12  Jocelyn Fiat

  Added JSON_ENCODER

2012-01-09  Jocelyn Fiat

  removed obsolete call on `WSF_RESPONSE.write_..' by using the up-to-date
  `WSF_RESPONSE.put_..'

2012-01-06  Jocelyn Fiat

  HTTP_HEADER: - added put_last_modified - added RFC1123 http date format
  helper - added put_cookie_with_expiration_date as DATE_TIME REQUEST: added
  `execution_variable' to provide a way to keep object attached to the request
  and indexed by a string. A typical usage is a SESSION object

2011-12-21  jvelilla

  Update examples/restbucksCRUD/readme.md

2011-12-18  Jocelyn Fiat

  added REQUEST.execution_variables ... to provide a solution to store data
  during request execution could be used for SESSION, or any "shared" data
  inside the same Request

  applied write_ as put_ renaming to examples

2011-12-15  Jocelyn Fiat

  Use put_ instead of write_

  various minor changes

  use /usr/lib/libfcgi.so instead of /usr/local/lib/libfcgi.so

  Applied renaming from write_ to put_

  Renamed write_ feature as put_

  Fixed stupid mistake in {WGI_NINO_INPUT_SREEAM}.end_of_input

  Fixed typo and missing uri_template reference for draft rest library

  Now the 'router' library is part of 'wsf' Move hello_routed_world under
  tests/dev since it was not really an example, but more a dev workspace/test

  Made DEFAULT_SERVICE_LAUNCHER more flexible for the user.

2011-12-15  jvelilla

  Update read_trailer feature.

  Initial implementation of wgi_chunked_input_stream as a wrapper of
  wgi_input_stream

2011-12-14  Jocelyn Fiat

  Use port 9090 for restbuck server mainly to avoid using 80 or 8080 which are
  often already used (by current webserver, or even skype, or jenkins, or ...)

  Forgot to add make_and_launch_with_options to the creation procedures

  Added DEFAULT_SERVICE_LAUNCHER.make_and_launch_with_options Added
  WSF_RESPONSE.redirect_now_with_content (...) Updated hello_routed_world ..
  mainly example use to test/develop... not really a nice example

2011-12-13  Jocelyn Fiat

  Updated readme on how to get source code

  added head and bottom value in WSF_FILE_RESPONSE, to enable the user to set a
  head and bottom part easily

2011-12-12  Jocelyn Fiat

  avoid infinite rescue due to internal error or user code not dealing well
  with socket disconnection

  Removed dotnet target for now

  Fixed http_client autotest code

  Break inheritance from WGI_RESPONSE, since it is not flexible for future
  improvement.

  Fixed HTTP client callers

  Renamed DEFAULT_SERVICE as DEFAULT_SERVICE_LAUNCHER

  Fixed WSF_FILE_RESPONSE and added WSF_FORCE_DOWNLOAD_RESPONSE

  Removed any (put|write)_file_content from the WSF_ or WGI_ OUTPUT classes Now
  DEFAULT_SERVICE has to be created instead of inherited. - This seems to be
  better for new user, and this avoid potential conflict and difference when
  inheriting between the various DEFAULT_SERVICE implementation. - remember
  that DEFAULT_SERVICE, is mainly to help the user to build its very first
  service. Use READABLE_STRING_8 as argument whenever it is possible. Added
  WSF_RESPONSE_MESSAGE, and WSF_RESPONSE.put_response (a_response_message) Now
  WSF_RESPONSE inherit from WGI_RESPONSE

2011-12-10  jvelilla

  Update restbuck client, create and read an order. Update JSON converter, the
  id is not important, applied the DRY principle. Update the ORDER_HANDLER to
  use the meta_string_variable instead of meta_variable from req. Fix, the key
  in meta_variable_table, use c.key instead of c.item

  Update examples/restbucksCRUD/readme.md

2011-12-09  jvelilla

  Update the restbuck_client, still work in progress. Update restbuck_server,
  remove unused class in inherit. Update libcurl_http_client_request, to parse
  context headers before the execution. Update wgi_input_stream, commented
  precondition.

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

  Update examples/restbucksCRUD/readme.md

2011-12-08  jvelilla

  Update examples/restbucksCRUD/readme.md

  Updated documentation

  Updated restbucksCRUD documentation

  Added basic two basic examples, refactor rename restbucks to restbucksCRUD

2011-12-07  jvelilla

  Sync Jocelyn repo

2011-12-03  Jocelyn Fiat

  Update README.md

  Update README.md

  Update README.md

  fixed markdown syntax

2011-12-02  Jocelyn Fiat

  Remove any useless library include from this .ecf we just need
  default_"connector", router, wsf and http

  Fixed compilation issue for CGI and libFCGI connector due to recent changes
  in interface  (use READABLE_STRING_8)

2011-12-01  Jocelyn Fiat

  Integrated new system to handle form_parameter, input_data in relation with
  MIME handling This is not yet clear how to let the user precise its own MIME
  handler but it is in progress

  fixed remaining issue or useless code to set http environment variable

  Fixed stupid error where we were concatenating ... value by error

  Added WSF_RESPONSE.write_chunk (s: ?READABLE_STRING_8) to help user sending
  chunk with "Transfer-Encoding: chunked"

  Synchronized with Nino

  Fixed WSF_RESPONSE.redirect* features

  sync with Nino, call to put_readable_string_8

  Synchronized with EiffelWebNino

  relative path for README link

2011-12-01  jvelilla

  Update library/protocol/CONNEG/README.md

  Update library/protocol/CONNEG/README.md

  Updated Conneg library, added test cases

2011-11-30  jvelilla

  Fixed minor issue, added test cases to check language negotiation.

  Update conneg library and test cases

2011-11-25  Jocelyn Fiat

  Fixed example due to recent interface changes

  - (WGI|WSF)_RESPONSE(*) renamed write_headers_string as write_header_text -
  HTTP_HEADER.string does not have the ending CRLFCRLF .. but just CRLF -
  WGI_RESPONSE.write_header_text has the responsibility to handle the last
  blank line CRLF (separating the header from the message) - HTTP_HEADER.string
  does not set anymore a default content type as text/html - added
  WGI_RESPONSE.write_header_lines (ITERABLE [TUPLE [name,value:
  READABLE_STRING_8]] mainly as an helper method, this way the WGI user does
  not have to know about the CRLF end of line

  Applied recent renaming from WGI_RESPONSE_BUFFER as WGI_RESPONSE

  updated WGI specification

  Added missing wgi_connector

  added "redirect" helper feature to WSF_RESPONSE

  Added `{WGI_REQUEST}.wgi_*' function to WSF_REQUEST

  rename `application' as `service'

  Use HTTP_HEADER instead of WSF_HEADER (WSF_HEADER is kept for convenience and
  existing code)

  better script to check compilation and tests

  Moved implementation of WSF_HEADER to HTTP_HEADER in the http library

  Simplified EWSGI interfaces Renamed WGI_RESPONSE_BUFFER as WGI_RESPONSE to
  avoid confusion Removed EWF_HEADER and removed related caller from WGI
  implementation, now this is only part of WSF library Added wgi_version,
  wgi_implementation and wgi_connector to the WGI_REQUEST interface to give
  more information to the user Added back WGI_CONNECTOR to WGI specification,
  mainly because of `{WGI_REQUEST}.wgi_connector' simplified WGI_CONNECTOR to
  contain for now only `name' and `version' if the implementation of connector
  inherit from WGI_CONNECTOR (recommended) this might gives more access to the
  user using a reverse assignment for specific needs (but this usage is not
  recommended due to portability issue on other connector) Removed useless
  connector.ecf since now EWF/WGI library provides the helper classes

2011-11-23  Jocelyn Fiat

  Fixed sample example config file after recent location change for "rest" lib

  Improved run_CI_tests.py and include the compile_all call directly in the
  python script. If compile_all tool supports  -keep ... let's use it. (recent
  addition)

  fixed rest(-safe).ecf due to recent location change

  Updated README.md in relation with "rest" lib relocation

  Move "rest" library under "draft/..." since it is more an experiment rather
  than a real REST library

2011-11-21  Jocelyn Fiat

  Update draft/README.md

  updated Eiffel libfcgi README file

  Added scripts to help building the libfcgi.dll and .lib from modified source
  of libfcgi Extracted into "libfcgi" only the files needed to compile the
  Windows .dll and .lib

  Added scripts to help building the libfcgi.dll and .lib from modified source
  of libfcgi

  updated README to apply 'ext' renamed as 'contrib'

2011-11-18  Jocelyn Fiat

  fixed compilation for tests.ecf

  fixed typo

  Updated "draft" folder which contain potential future addition to EWF

  Added "draft" folder to contain potential future addition to EWF

  restructured CONNEG library fixed various issue in .ecf files

2011-11-17  jvelilla

  Initial import CONNEG library, support server side content negotiation.

2011-11-17  Jocelyn Fiat

  Rename "ext" as "contrib" in compile_all.ini as well no need to test the code
  coming from other projects.

  Renamed "ext" folder as "contrib" folder and reorganized a little bit Renamed
  any *_APPLICATION as *_SERVICE mainly because those components such as
  WSF_APPLICATION, renamed as WSF_SERVICE are not always the main application
  entry, and "service" describe them better Minor implementation change in
  WSF_REQUEST Cosmetics

2011-11-16  Jocelyn Fiat

  handle last run failure

  Added request method PATCH even if not really used for now, it might in the
  future

  Do not print command during script execution

  fixed indentation in python script

  Added information output to run_CI_tests.py

  updated run_CI_tests.py

  updated run_CI_tests.py

  updated run_CI_tests.py

  updated run_CI_tests.py

  removed unused local variables

  added a python script to be use inside jenkins CI server (experimental for
  now)

2011-11-14  Jocelyn Fiat

  cosmetic

  cosmetics

  Added various README.md  (using the markdown syntax)

  updated README with links to sub READM.md

  sync with Eiffel Web Nino

  Added default WSF_APPLICATION for libfcgi connector

  code removal

  Updated libfcgi source code for Windows AND Linux. Cleaning some code and
  feature clauses.

  Changed the WGI_INPUT_STREAM and WGI_OUTPUT_STREAM interfaces main changes
  for existing code  `read_stream' is renamed `read_string'

2011-11-09  Jocelyn Fiat

  Added is_request_method (STRING): BOOLEAN to help users

2011-11-07  Jocelyn Fiat

  updated readme with better way to get the source code recursively

  added script to build archive for download area

2011-11-04  Jocelyn Fiat

  sync with Eiffel Web Nino

  sync with nino and applied changes to connector

  Use recent changes from Nino, to get access to the launched and port
  information. Quite useful when launching using port=0 to use a random free
  port. This is great for testing, this way we can run many tests in the same
  time without any port blocking.

2011-11-03  Jocelyn Fiat

  applied recent changes from Nino

2011-11-02  Jocelyn Fiat

  removed compliance on ewsgi, since now we target WSF applied recent changes
  related to WSF_VALUE

  Safer interface for WSF_VALUE, when related to STRING value

  sync with submodules

  renamed WSF_(.*)_VALUE as WSF_$1

2011-10-31  Jocelyn Fiat

  Fixed obsolete calls, and compilation error.

  fixed path to cURL.ecf file, using the correct uppercase

  Fixed missing syntax="provisional" , this was preventing compiling with
  "across" statements

  Better implementation to get http header for http_client, and to get list of
  header entries by key,value

  updated instructions related to submodules

  Fixed remaining 6.8 vs 7.0 compilation issue related to UTF8_(URL_)ENCODER

  removed unused local variable

  Added convenient features to BASE64 - decode_string_to_buffer (v: STRING;
  a_buffer: STRING) - decode_string_to_output_medium (v: STRING; a_output:
  IO_MEDIUM)

  removed unused local variable

  Fixed code to be compilable with EiffelStudio 6.8 and 7.0 (due to recent
  change in UNICODE_CONVERSION) UNICODE_CONVERSION

2011-10-28  jvelilla

  Added headers to response in HTTP_CLIENT_RESPONSE

2011-10-27  Jocelyn Fiat

  use '%/123/' syntax, to make sure no editor replace the accentued characters

  removed unwanted .rc

  Fixed a previously character changes in WSF_REQUEST (related to
  safe_filename), and modified the implementation to use inspect Fixed the
  request_content_type computation Cosmetic in REQUEST_RESOURCE_HANDLER_HELPER

  added script to update current git working copy and submodules recursively

  cosmetic, or minor changes

2011-10-27  jvelilla

  Added eel and eapml in EWF libraries. Removed them from gitmodule

2011-10-26  jvelilla

  Updated  request resource handler. TODO: implement Content-Negotiation

2011-10-24  Jocelyn Fiat

  Start index for list[]=a&list[]=b ... from 1  instead of 0 Stick to Eiffel
  spirit

  Added visitor patterns to WSF_VALUE Handling UTF-8 unencoding for WSF_VALUE
  ... Added WSF_TABLE_VALUE to handle list[]=a&list[]=b ...  Library encoder:
  added UTF8 facilities

  missing implementation (forgot to uncomment)

2011-10-23  jvelilla

  Added eel and eapml modules

  Update delete method to hanlde method not allowed. Added method not allowed
  to request resource handler helper class. Update gitmodules

2011-10-21  Jocelyn Fiat

  Applied recent changes on WGI_ and WSF_ Moved classes away from ewsgi,
  restructured, cleaned

  Continued reducing WGI and move implementation to WSF  (Web Server Framework)
  Removed many usage of READABLE_STRING_GENERAL in favor to READABLE_STRING_8
  to avoid potential nasty issues in user's code URI-template is working only
  with STRING_8, then changed any _GENERAL or _STRING_32 to _STRING_8

2011-10-19  Jocelyn Fiat

  First try to get a limited WGI_  and use WSF_ as default framework

2011-10-21  jvelilla

  Update Restbucks example: Conditional GET, PUT. Added a response method to
  support resource not modified. Added a ETAG_UTILS class to calcule
  md5_digest. Added ext libs eel and eapml.

2011-10-19  Jocelyn Fiat

  Used object test

  removed useless local variable

2011-10-14  Jocelyn Fiat

  fixed cgi and libfcgi connectors due to recent changes from WGI_APPLICATION

  Removed handling of internal error from WGI_APPLICATION And for now added it
  into nino connector

  Fixed issue with index in uri template matcher

  Added HTTP_FILE_EXTENSION_MIME_MAPPING Added REQUEST_FILE_SYSTEM_HANDLER to
  the router library Added file system handler in "hello_routed_world" example

2011-10-13  jvelilla

  Added handle_resource_conflict_response feature to handle 409 reponse,
  Cosmetic.

2011-10-12  Jocelyn Fiat

  Added data and file for post and put request methods

  Using Transfer-Encoding: chunked in example to send response progressively

  sync with submodules

  removed unwanted code

  applied recent changes on HTTP_REQUEST_METHOD_CONSTANTS

  cosmetic

  Addition to "http" library, separated constants into - HTTP_MIME_TYPES -
  HTTP_HEADER_NAMES - HTTP_REQUEST_METHODS - HTTP_STATUS_CODE   (already
  exists)  Do not set the "Status" header when using
  WGI_RESPONSE_BUFFER.write_header (...) Cosmetic

2011-10-11  Jocelyn Fiat

  Fixed errors recently introduced

  sync with latest JSON

2011-10-11  jvelilla

  Update order_handler, fix json_order_converter

2011-10-11  Jocelyn Fiat

  Use local curl if compiler is < 7.0.8.7340 otherwise, use ISE_LIBRARY cURL

  Temporary fixed issue of using modified cURL (which is cURL provided with
  EiffelStudio 7.0) This changes will be reverted in the future

2011-10-10  Jocelyn Fiat

  Updated readme related to mirrored Eiffel cURL library

  added submodule ext/ise_library/curl  to use the updated Eiffel cURL from
  ISE.

  cosmetic

2011-10-07  Jocelyn Fiat

  added http diagrams found on the web

  Added the possibility to specify the supported content types Added FIXME

  Cosmetic

  Added "Date:" helper feature in EWF_HEADER Added license.lic to restbuck
  example, and mainly copyright to Javier Use HTTP_STATUS_CODES Minor
  improvements using object tests Cosmetic (indentation, ..)

2011-10-06  Jocelyn Fiat

  Added a first simple test client to test the restbuck client

  added support for data in POST request

2011-10-06  jvelilla

  Added REQUEST_RESOURCE_HANDLER_HELPER class to contain common http method
  behavior. Updated ORDER_HANLDER to use this new class.

2011-10-05  Jocelyn Fiat

  Added `base_url' for REQUEST_ROUTER  (and descendants) Fixed implementation
  of REST_REQUEST_AGENT_HANDLER to avoid wrong path in inherited routine. Allow
  to build a URI_TEMPLATE from another URI TEMPLATE, this way, if later we have
  more attribute (status or settings) to URI_TEMPLATE, we'll be able to change
  the `template' without breaking the settings

  added missing call to pre_execute and post_execute

  Fixed missing http:// in absolute URL

  remove pre_execute, and post_execute, and make process_request frozen this
  way, the user won't be tempted to redefine feature not being part of pure
  EWSGI interface.

  better argument name, to precise the timeout is in second also in comment.

2011-10-04  Jocelyn Fiat

  Fixed agent handler for rest library

  fixed inheritance and precursor bad usage.

2011-10-03  jvelilla

  Updated support for PUT. Now the example support GET, POST, PUT, DELETE.

2011-09-28  Jocelyn Fiat

  fixed compilation for ewsgi/tests/tests.ecf file

  Made WGI_VALUE.name as READABLE_STRING_32 .. otherwise it is a pain to
  manipulate. Changed return type of meta_variable to be WGI_STRING_VALUE ...
  since the meta variable can not be anything else. Made sure REQUEST_URI
  starts with one and only one slash Internal implementation: the _table now
  compares object Removed SELF variable ... at least for now Be sure to provide
  a REQUEST_URI even if the underlying connector does not.

  cleaned http_client configuration files

  Added library/library.index

  restructured ewsgi to avoid too many sub cluster

2011-09-28  jvelilla

  Updated Restbucks examples, handle not method allowed in a better way, added
  the readme file.

2011-09-26  Jocelyn Fiat

  fixed compilation of rest example

  fixed typo

  Changed ITERATION_CURSOR [WGI_VALUE] into ITERABLE [WGI_VALUE] for
  WGI_REQUEST.*parameters* and similar Applied recent changes on EWF_HEADER

2011-09-23  Jocelyn Fiat

  Updated changelogs.txt sync with nino and doc

  Added AutoTest simple cases for ewsgi using Nino web server

  Fixing issue with experimental WGI_MULTIPLE_STRING_VALUE Fixed issue with
  RAW_POST_DATA

  Removed `put_redirection' and replaced by `put_location' Removed useless code
  in some features

  Use READABLE_STRING(_*) instead of just STRING(_*)

  Added feature to shutdown the Nino http server

  Added error reporting in HTTP_CLIENT_RESPONSE Added missing
  set_connect_timeout

2011-09-23  jvelilla

  Added validations.

2011-09-22  Jocelyn Fiat

  Added code to create an HTTP_AUTHORIZATION from the client side as well. So
  now we can either interpret an HTTP_AUTHORIZATION  or build one
  HTTP_AUTHORIZATION  So far , only Basic auth is supported.

  Made all libraries compilable in any mode (voidsafe or not) Fixed related
  examples

2011-09-22  jvelilla

  Initial import, work in progress restbuck example. Only support create a
  resource

2011-09-21  Jocelyn Fiat

  Fixed issue where Content-Type and Content-Length were translated into
  HTTP_CONTENT_TYPE and HTTP_CONTENT_LENGTH instead of just CONTENT_TYPE and
  CONTENT_LENGTH

  better assertion to ensure `base' is a valid base url

  synch with Nino

  better return type for http client functions added helper features

2011-09-20  Jocelyn Fiat

  fixed case sensitive path

  missing -safe.ecf config file for http_client

  Now using READABLE_STRING_... type

  Added simple HTTP client. For now the implementation is using Eiffel cURL
  library. It requires Eiffel cURL coming with next EiffelStudio 7.0 (or from
  eiffelstudio's repo from rev#87244 )

2011-09-16  Jocelyn Fiat

  Fixed issues in WGI_REQUEST's invariant Fixed issues with guessing the
  default format for REST handling Fixed issue with .._ROUTING_.. component.

  Fixed issue with uri template router .. it was applying on request_uri
  instead of path_info now it match on PATH_INFO

  more flexible authenticated query .. on handler, and not anymore on context
  object

  fixed wrong order in parameter for callers of set_meta_string_variable

  added debug_output to WGI_VALUE

  first version of http authorization .. for now, only basic digest

  added request_handler_routes_recorder to provide an implementation for
  `REQUEST_HANDLER.on_handler_mapped'

  Added "on_handler_mapped" callback to allow any REQUEST_HANDLER to record the
  existing routes.

  typo

2011-09-15  Jocelyn Fiat

  minor enhancement of error lib

  Added WGI_MULTIPLE_STRING_VALUE Renamed value as WGI_STRING_VALUE.string
  Renamed a few classes .._CONTEXT_I  as .._CONTEXT updated example.

  cosmetic

  updated README.md

2011-09-14  Jocelyn Fiat

  Simplified interface of "router" library classes

  applied renaming for rest and router lib

  Reorganized library "server/request/rest"

  some renaming to use _I for the generic classes, and removed the DEFAULT_
  prefix for default implementation this should makes things easier for new
  users

  reorganized router library

  - Adopted deferred WGI_VALUE design for Result type of *_parameter and
  similar functions - Adopted the ITERATION_CURSOR [WGI_VALUE] design for
  *_parameters and similar functions - renamed parameter as item - provided
  helper function to handle "string" value parameters  Experimental for now.

  better result type  (using READABLE_..)

  sync with nino

2011-09-13  Jocelyn Fiat

  updated changelogs

  Added first draft for RESTful library note: the interfaces are likely to
  change in the future

  updated config file and examples

  adding routing handler few renaming

2011-09-09  Jocelyn Fiat

  changing design to use generic instead of anchor types

  make router more easy to inherit from and specialized

  Added support during match for  {/vars} and also handle cases such as  
  /foo.{format}{/vars}  or /foo.{format}{?vars} where no literal exists between
  the uri template expressions

  better type for argument and result (using READABLE_...)

  change to standard default values

2011-09-08  jvelilla

  Sync to jocelyn EWF master

  Update

2011-09-07  Jocelyn Fiat

  sync doc/wiki

  use `resource' as generic name for uri or uri_template

  added changelogs.txt

  Added request methods criteria for the router component. Now one can decide 
  map_agent_with_request_methods ("/foo/bar/{bar_id}", agent handle_foo_bar,
  <<"GET">>) (and similar for non agent way) This might be useful in pure
  RESTful environment.

  fixed example .. where we forgot to set the status, and send the header (DbC
  helped here)

  renamed (un)set_meta_parameter as (un)set_meta_variable

  Missing HTTP_  prefix for header meta variable in REQUEST

2011-08-30  Jocelyn Fiat

  Changed prefix from EWSGI_ to WGI_ Changed meta variable type to
  READABLE_STRING_32

2011-08-29  Jocelyn Fiat

  naming:  meta_variable(s) changed some string type to READABLE_STRING_32 or
  READABLE_STRING_8 for now regarding Meta variables (need decision here..)

2011-08-25  Jocelyn Fiat

  changed prefix GW_ into EWF_  for EiffelWebFramework use
  READABLE_STRING_GENERAL instead of just STRING

  sync wiki doc

  Merged REQUEST and ENVIRONMENT  into REQUEST renamed ENVIRONMENT_NAMES into
  META_NAMES better usage of READABLE_STRING_GENERAL, and other strings
  abstract RESPONSE_BUFFER in implementation of EWSGI for the implementation,
  inheriting from deferred specification (more to come later)

  Merged REQUEST and ENVIRONMENT  into REQUEST renamed ENVIRONMENT_NAMES into
  META_NAMES better usage of READABLE_STRING_GENERAL, and other strings for the
  implementation, inheriting from deferred specification (more to come later)

2011-08-24  Jocelyn Fiat

  fixing wrong feature usage

2011-08-18  Jocelyn Fiat

  code cleaning, and prepare for internal review

2011-08-04  Jocelyn Fiat

  enhanced the ERROR_HANDLER

2011-08-02  Jocelyn Fiat

  minor improvements on response_as_result code

  cosmetic in config file .ecf

  add "write_headers_string" to RESPONSE_BUFFER

2011-08-01  Jocelyn Fiat

  sync wiki

  moved ewsgi-full config file under tests (this is mainly for dev purpose, to
  be able to compile and edit all classes related to ewsgi)

  Tried to reduce gap between both EWSGI proposals Re-adapt the Spec-compliant
  solution (instead of Lib-compliant solution). Thus no more 100% deferred
  interface. Rename EWSGI_RESPONSE into EWSGI_RESPONSE_BUFFER Added in
  extra/response-as-result/  an copy/paste from the implementation of Paul's
  proposal (not up to date with Paul's spec). But this is mainly for
  information and tests. Removed part of the ewsgi/specification interfaces ...
  to be able to test EWSGI compliant library against the pure specification
  (experimental). Renamed most of the GW_... into EWSGI_...

2011-07-29  Jocelyn Fiat

  added http_accept feature to represent "Accept:" HTTP header

  added hello_routed_world example few changes on new `router' library (still
  in-progress)

  Added first draft for a URI and/or URI-template base request router.

  cosmetic

  Added "flush" to the EWSGI_RESPONSE_STREAM

  added missing non-void-safe .ecf

  added missing non-void-safe .ecf

2011-07-28  Jocelyn Fiat

  Fixed various issue with URI template, added corresponding tests

  It seems good convention to also add the "Status:" header

  fix hello world example

  ignore tests/temp

2011-07-27  Jocelyn Fiat

  added script to test compilations of .ecf in EWF

  Added the possibility to set the "Status" header (different from the status
  line) in GW_HEADER Renamed EWSGI_RESPONSE as EWSGI_RESPONSE_STREAM to avoid
  confusion with EWSGI_RESPONSE as stated in Paul's proposal Added default
  "configuration" (for nino and cgi) to be independant of the connector (at
  compilation time) Added example implementing Paul's proposal on top of EWSGI

  Added an implementation folder in ewsgi_spec, mainly to provide default
  implementation just to save the developer of connector some time. changed
  structured

  added non void-safe configuration files

  restructured specification folders

  Apply prefix renaming from the specification Reduced the number of EWSGI
  classes

  now use prefix EWSGI_ instead of GW_ for ewsgi specification

  First step to extract the interface of the EWSGI specification into its own
  library Applied the changes

  removed implementation from APPLICATION , RESPONSE and REQUEST classes

  removed the notion of status from GW_HEADER, since it should not be part of
  the HTTP header added status setting in GW_RESPONSE added a default
  implementation for write_status in OUTPUT_STREAM (it should be moved away in
  the future) removed any implementation from GW_REQUEST, and put it in
  GW_REQUEST_IMP

2011-07-26  Jocelyn Fiat

  replace write_string by write in RESPONSE

2011-07-25  Jocelyn Fiat

  various alternative implementation for response

  Redesigned the RESPONSE to remove the output stream from the deferred
  interface Redesigned the uploaded file part to be more object oriented Move
  some implementation from REQUEST to REQUEST_IMP

2011-07-22  Jocelyn Fiat

  added doc/spec for uri template

  Fixed issue with matcher

  fixed typo

  Improvement and revert back to support draft 04 (but using custom variable,
  allow the user to follow draft 05 spec)

  fixing issue with URI TEMPLATE matcher

  added URI_TEMPLATE_MATCH_RESULT

2011-07-21  Jocelyn Fiat

  sync

  updated README

  updated README

2011-07-20  Jocelyn Fiat

  added use of URL-encoder to unencode the URL values (to fill the parameters)
  review design of GW_RESPONSE to hide the output, and remove the header
  attribute added script_url in REQUEST to help the user build url relative to
  script_name  + cosmetic

  First version of URI Template library as specified by
  http://tools.ietf.org/html/draft-gregorio-uritemplate-05 (it seems to
  contains some error in the spec .. or minor incoherences, to double check)
  The matcher is basic, it does not handle all the details of the string
  builder, but that seems ok for now.

2011-07-18  Jocelyn Fiat

  added format and request method constants classes + license file

  added default rescue code on exception rescue

  nicer Eiffel code, let's not try to achieve everything-in-one-line style ...

  restrict creation only by GW_APPLICATION and descendant

  add output helper feature to RESPONSE

  Fixed issue with nino handler and base url

  sync nino and json

2011-07-14  Jocelyn Fiat

  rename new_request_context by new_request

2011-07-13  Jocelyn Fiat

  cosmetic

  renamed GW_REQUEST_CONTEXT as GW_REQUEST

  Design change, now we have `req' REQUEST and `res' RESPONSE instead of just
  `ctx'

  enhanced comment for `execute'

  Make a simple hello world based on nino

2011-07-12  Jocelyn Fiat

  Added GW_HEADER Added pre_, post_ and rescue_execute for GW_APPLICATION Fixed
  an unknown class in export clause cosmetic + copyright

  fixed submodule path ... Windows path separator issue..

  added instruction to get the source code

  First integration of the new GW_ design more centralized on connector, and
  does not require specific feature on GW_APPLICATION depending on the
  connector. So this is really more flexible this way, and much easier to write
  application supporting CGI, FCGI, Nino and so on .. as demonstrated in
  hello_world  This is a first version, more will come later, mainly migrating
  from Eiffel Web Reloaded to this Eiffel Web Framework project.

2011-07-08  Jocelyn Fiat

  focus on GW_APPLICATION

2011-07-07  Jocelyn Fiat

  a few renaming better GW_ENVIRONMENT interface

2011-07-06  Jocelyn Fiat

  updated doc

2011-07-05  Jocelyn Fiat

  cosmetic, license, copyright

  added doc/wiki (wiki from github)

  First draft for the ewsgi spec

2011-06-29  Jocelyn

  Let's start the Eiffel Web Framework
