Commit Graph

18 Commits

Author SHA1 Message Date
cc4ef1a575 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 18:03:11 +02:00
Jocelyn Fiat
de57e814c0 Added WSF_STARTS_WITH_AGENT_HANDLER 2013-03-22 16:07:23 +01:00
Jocelyn Fiat
5eb1f89273 Fixing feature comments 2013-03-21 17:53:45 +01:00
Jocelyn Fiat
1f76fd5360 Now WSF_FILTER_HANDLER is a handler and has formal generic G constrained to WSF_HANDLER
This eases implementation of potential descendants.
2013-03-21 15:47:10 +01:00
Jocelyn Fiat
7c7bf9a3f8 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.
2013-03-21 15:41:46 +01:00
Jocelyn Fiat
3faa2ab815 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-19 11:54:01 +01:00
Colin Adams
a303783204 Fifth round of contracts for non-Void-safe users 2013-03-15 14:06:37 +00:00
Jocelyn Fiat
aa65c16957 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)
2012-12-19 16:42:26 +01:00
Jocelyn Fiat
cb034fc94e 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-13 12:01:24 +01:00
Jocelyn Fiat
156406f9ac Fixed various compilation issue with new self documentation
Improved the self documentation handler to provide a make_hidden creation procedure
2012-12-03 12:20:12 +01:00
Jocelyn Fiat
af07986eec 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
2012-11-23 22:49:11 +01:00
Jocelyn Fiat
52cc743997 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-23 12:38:49 +01:00
Jocelyn Fiat
aa743c0a7d Removed generic parameter in WSF_FILTER_HANDLER, since it is useless and make code heavy
Signed-off-by: Olivier Ligot <oligot@gmail.com>
Signed-off-by: Jocelyn Fiat <jfiat@eiffel.com>
2012-10-08 10:40:44 +02:00
Jocelyn Fiat
016efaed15 Updated Copyright 2012-10-04 15:04:14 +02:00
Jocelyn Fiat
55e4602faf Fixed compilation for STARTS_WITH_ handler 2012-10-04 14:52:28 +02:00
Jocelyn Fiat
2f6a6cbf5f 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-04 14:31:03 +02:00
Jocelyn Fiat
291bb3a33b 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-28 14:42:31 +02:00
Jocelyn Fiat
e01c5bec57 Reviewed the semantic of the handler context.
Adapted existing code to fit the new router design.
2012-09-27 15:09:41 +02:00