Commit Graph

1288 Commits

Author SHA1 Message Date
Jocelyn Fiat
7db054a36d Updated CMS experimental component
Fixed various issues with fieldset or similar not traversed
2013-02-04 15:35:23 +01:00
Jocelyn Fiat
dc6255d410 Fixed implementation of `string_array_item' 2013-02-04 15:32:46 +01:00
Jocelyn Fiat
56df2b085e Fixing global EWF compilation 2013-01-31 16:21:16 +01:00
Jocelyn Fiat
a5c9329ada Fixing global EWF compilation 2013-01-31 16:20:38 +01:00
Jocelyn Fiat
ce469b6ede 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.
2013-01-31 15:33:24 +01:00
Jocelyn Fiat
40ea982293 Added ANSI C date time string format support in HTTP_DATE. 2013-01-31 15:30:39 +01:00
Jocelyn Fiat
d172dedf31 Fixed HTTP_DATE for GMT+ offset (integer value) 2013-01-31 13:54:10 +01:00
Jocelyn Fiat
20d5798444 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-31 11:23:11 +01:00
Jocelyn Fiat
4369637140 using ARRAYED_LIST rather than LINKED_LIST 2013-01-30 22:40:29 +01:00
Jocelyn Fiat
860959879c Removed eel and eapml contrib/library from EWF
Since there are available from $ISE_LIBRARY
2013-01-23 18:13:22 +01:00
Jocelyn Fiat
8f232bd627 Added `append_string_to' to HTTP_HEADER 2013-01-23 16:23:10 +01:00
Jocelyn Fiat
393a4fc1bf Removed useless dependencies on other lib. 2013-01-23 16:22:03 +01:00
Jocelyn Fiat
d1873d9645 Merge pull request #26 from oligot/no-context
Use execution_variable instead of context
2013-01-23 02:00:38 -08:00
Olivier Ligot
10c02219e3 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-23 10:20:03 +01:00
Jocelyn Fiat
acd942b720 Minor optimization in HTTP_HEADER 2013-01-22 21:13:40 +01:00
Jocelyn Fiat
d2767fd020 Merge pull request #24 from oligot/header-values
Added {HTTP_HEADER}.put_header_key_values
2013-01-22 11:57:14 -08:00
Olivier Ligot
c89a3f007f Added {HTTP_HEADER}.put_header_key_values
This is mainly a refactoring that is useful for an upcoming PR
regarding CORS (smaller patches are better...)

Note that this also fixes a small typo where an extra space was
added when calling {HTTP_HEADER}.put_allow
2013-01-22 17:09:23 +01:00
Jocelyn Fiat
069dc3b6fd Merge pull request #23 from oligot/readonly-ecf
Filter example: all libraries are now readonly
2013-01-22 07:47:08 -08:00
Olivier Ligot
af58d87d79 Filter example: all libraries are now readonly 2013-01-22 16:42:53 +01:00
Olivier Ligot
ff57d0ecd4 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
2013-01-09 17:34:50 +01:00
Jocelyn Fiat
65d7545320 Merge pull request #21 from oligot/typo
Fix a small typo: you are instead of your are
2013-01-07 03:00:16 -08:00
Olivier Ligot
aadfdec1ae Fix a small typo: you are instead of your are 2013-01-07 11:11:42 +01:00
Jocelyn Fiat
1d8cce9947 Added http_authorization which is now needed by example filter. 2012-12-22 16:36:36 +01:00
Jocelyn Fiat
e16d96f613 minor changes 2012-12-22 16:18:52 +01:00
Jocelyn Fiat
3376ec1288 Keep compatibility with 7.1
thus not unicode compliant
2012-12-21 09:54:22 +01:00
Jocelyn Fiat
4ff7b33471 using socket_ok does not sounds ok on linux 2012-12-21 07:19:13 +01:00
Jocelyn Fiat
a7e6651806 Use WSF_REQUEST.read_input_data_into (buf) 2012-12-20 22:57:38 +01:00
Jocelyn Fiat
facdfd0b4a added WSF_SUPPORT.environment_item 2012-12-20 18:37:13 +01:00
Jocelyn Fiat
e4270b6297 Added is_available on HTTP_CLIENT_SESSION mainly to check if libcurl is available. 2012-12-20 18:36:58 +01:00
Jocelyn Fiat
a362e7d9c6 Avoid calling ANY.print, prefer io.error.put_string
Fixed obsolete calls.
2012-12-20 18:32:56 +01:00
Jocelyn Fiat
d46fbeaedd Merge branch 'master' of https://github.com/Eiffel-World/EiffelWebNino 2012-12-20 15:44:08 +01:00
Jocelyn Fiat
ef9494e7e8 removed unused local 2012-12-20 15:43:01 +01:00
Jocelyn Fiat
394ca05579 Added support for server_name in nino, and openshift 2012-12-20 15:41:18 +01:00
Jocelyn Fiat
b4c8c70360 updated doc related to git 2012-12-20 15:40:42 +01:00
Jocelyn Fiat
633a5afe7f Merge branch 'master' of https://github.com/Eiffel-World/EiffelWebNino 2012-12-20 15:39:27 +01:00
Jocelyn Fiat
00d6caba93 Added support for server name 2012-12-20 15:35:48 +01:00
Jocelyn Fiat
c058012313 updated conneg .ecf 2012-12-20 10:18:50 +01:00
Jocelyn Fiat
1e6d273254 Added openshift connector classes (for experimentation) 2012-12-20 10:09:49 +01:00
Jocelyn Fiat
27d2308d6f Added comment to self documentation features 2012-12-20 10:09:26 +01:00
Jocelyn Fiat
619be9a8cd 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.
2012-12-19 16:45:45 +01:00
Jocelyn Fiat
3d8e277003 Fixed WSF_TRACE_RESPONSE which was overwritting previously prepared content. 2012-12-19 16:43:07 +01: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
021f0eeaec Updated documentation output 2012-12-19 14:35:47 +01:00
Jocelyn Fiat
7193ce93f4 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.
2012-12-19 12:47:35 +01:00
Jocelyn Fiat
59f19dc52f 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]
2012-12-19 11:45:59 +01:00
Jocelyn Fiat
f3aeb67e16 changed UUID since this is the same a restbuckCRUD example. 2012-12-19 00:26:11 +01:00
Jocelyn Fiat
17f16c35ad Fixed various assertions.
Improved autotests
Added target 'server' to be able to run the server outside the test process.
2012-12-19 00:10:31 +01:00
Jocelyn Fiat
ffe87ccbe9 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)
2012-12-18 23:40:26 +01:00
Jocelyn Fiat
0d87c7939a Fixed sending of chunk, especially the ending where there is an optional Trailer, and a mandatory final CRLF
Now put_chunk does not support anymore empty chunk, and thus does not call put_chunk_end if ever it is called with empty chunk content.
Fixed the `transfered_content_length' when dealing with chunk transfert encoding
2012-12-18 23:34:55 +01:00
Jocelyn Fiat
de93ce32ff Added logger response wrapper, this is mainly to be able to save any response message to a file.
(debugging purpose)
2012-12-18 23:28:04 +01:00