Commit Graph

34 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
01cab452d8 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 17:00:58 +01:00
Colin Adams
5249275b23 Further changes in response to review comments by Jocelyn 2013-03-27 15:38:13 +00:00
Colin Adams
b321bee60e merging from upstream - stage 1 2013-03-26 17:04:49 +00:00
Colin Adams
14088f126b Use class URI 2013-03-26 16:10:32 +00:00
Jocelyn Fiat
de57e814c0 Added WSF_STARTS_WITH_AGENT_HANDLER 2013-03-22 16:07:23 +01:00
Colin Adams
d96a76bffa Merge branch 'master' into skeleton_router 2013-03-22 14:28:01 +00:00
Jocelyn Fiat
5eb1f89273 Fixing feature comments 2013-03-21 17:53:45 +01:00
Colin Adams
f11dbd9080 fix merge conflict from master 2013-03-21 15:55:14 +00:00
Jocelyn Fiat
813caa15e0 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)
2013-03-21 15:50:10 +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
73f675db60 added WSF_..._ROUTER_HELPER and made the previous WSF_..._ROUTED_SERVICE obsolete 2013-03-19 17:17:14 +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
Jocelyn Fiat
4d7660a9e3 Added deferred WSF_AGENT_HANDLER
Added WSF_NOT_IMPLEMENTED_RESPONSE
2013-03-18 22:05:34 +01:00
Colin Adams
7435b4f454 refactored for WSF_ROUTED_SKELETON_SERVICE 2013-03-18 14:45:04 +00:00
Colin Adams
a303783204 Fifth round of contracts for non-Void-safe users 2013-03-15 14:06:37 +00:00
Colin Adams
bb56166f95 Fourth round of contracts for non-Void-safe users 2013-03-15 12:01:54 +00:00
Colin Adams
c6d022bf18 Third iteration of contracts for non-Void-safe users 2013-03-15 10:16:32 +00:00
Colin Adams
3206bcc4fd Further contracts for non-Void-safe users 2013-03-14 15:29:11 +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
bdee22f647 added debug_output to WSF_ROUTER_MAPPING 2012-11-26 22:37:44 +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
59316c9c65 Added WSF_ROUTER_ITEM to replace a structure represented with named TUPLE
Added debug_output to ease debugging
2012-11-20 13:49:40 +01:00
Jocelyn Fiat
2e774f2e10 Added WSF_ROUTING_CONTEXT_HANDLER 2012-10-22 14:27:03 +02: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