Compare commits

...

2162 Commits

Author SHA1 Message Date
78f24ecb37 Updated ws.ini (for now, keep is_secure False, due to remaining issue with websocket and SSL implementation). 2016-10-14 13:11:26 +02:00
1161e541fa Accept "yes" or "true" in wsf launcher option boolean values.
Set socket_error when network occurs in `read_to_managed_pointer_noexception`.
2016-10-14 13:10:44 +02:00
d4ec640ac8 Renamed many classes and feature to use "secure" term instead of "ssl". (note, the .ecf are still using the "ssl" terminologie).
Provided easy way to set secure settings for Standalone.
For wsf launcher boolean option accept "true" or "yes" for True boolean, anything else is False.
2016-10-14 11:52:48 +02:00
01a9d02586 Added websocket examples for the server and client. 2016-10-13 22:01:50 +02:00
1e4203111f Use socket .._noexception functions in websocket networking. 2016-10-13 21:55:53 +02:00
b84f4838f5 Added new WSF_STANDALONE_SERVICE_OPTIONS, a descendant of WSF_SERVICE_LAUNCHER_OPTIONS specialized for standalone connectors. 2016-10-13 21:55:16 +02:00
8b43cb909a Do not use put_readable_string_8_noexception, and just update put_string_8_noexception to accept READABLE_STRING_8. 2016-10-13 21:53:12 +02:00
897f64e4fe Reuse http_network library.
Reintroduced HTTPD_STREAM_SOCKET for backward compatibility, and ease of usage.
Added websocket libraries (client, and protocol).
2016-10-13 16:25:11 +02:00
981942b2d6 Extracted network socket classes from httpd folder, and created a new library/network/http_network library.
Renamed HTTPD_STREAM_SOCKET as HTTP_STREAM_SOCKET.
Made http_client (net) library use the new http_network library.
2016-10-12 23:27:55 +02:00
c132d7734b Moved httpd library from ewsgi/connectors/standalone/lib/httpd to httpd.
Reused the http_network library as well inside httpd library.
2016-10-12 22:54:21 +02:00
d28f794828 Implemented chunked Transfer-Encoding in net_http_client.
Implemented support for buffer_size and chunk_size for net_http_client.
2016-10-12 16:49:08 +02:00
9e92b8c0fa Fixed typo in restbuck name. 2016-10-12 11:21:42 +02:00
ef704790a8 Fixed the "wsf_tests" autocase suite, which was wrong for cookies, and other minor changes. 2016-10-12 11:21:27 +02:00
57b1691243 Added support for debug.ini to debug example. 2016-10-12 11:19:54 +02:00
29590b1c0d Fixed potential issue related to PATH_INFO, and percent_encoded_path_info computing , when script name is in different path. 2016-10-12 11:19:23 +02:00
ed959042d7 Fixed issue with input using "Transfer-Encoding: chunked". 2016-10-12 11:12:37 +02:00
1170417e54 Fixed regression with persistent connection, be sure to keep the remote_info data for all successive requests within a same persistent connection. 2016-10-11 17:34:07 +02:00
2cfe00e61b Updated desktop_app example with embedded standalone web server. 2016-10-11 17:30:50 +02:00
a498a167ed Updated desktop application example for scoop concurrency mode. 2016-10-11 16:20:04 +02:00
f12158e535 Use the ..._noexception network features in the WGI standalone input and output classes. 2016-10-11 10:57:05 +02:00
080881368a Also check for SOCKET.was_error when accessing the socket data. 2016-10-11 10:29:38 +02:00
Jocelyn Fiat
3e935c7e33 Use `was_error' to get expected behavior on Linux. 2016-10-10 22:27:45 +02:00
Jocelyn Fiat
ad2bb0d1a7 Fixed C compilation on non Windows platform for EiffelStudio until 16.05 .
(the required c function are coming with EiffelNet from EiffelStudio 16.11 ).
2016-10-10 22:17:41 +02:00
7a546622bc Updated deprecated EiffelWeb nino to make it compilable with upcoming EiffelStudio 16.11.
Updated various projects to make them up-to-date and compilable with this latest EiffelWeb.
2016-10-10 21:40:15 +02:00
aed7461faf Improved networking implementation for httpd server and sockets.
Use new EiffelNet routines that do not raise exception on error.
Made compilable with 16.05 and dev-and-upcoming release 16.11.
Fixed various minor issues related to base_url, and added comments.
2016-10-08 01:10:16 +02:00
56819d6793 Replace Nino by Standalone whenever it is relevant. 2016-10-08 01:02:12 +02:00
b4fd04ad9f Updated has_incoming_data comment. 2016-10-05 16:19:48 +02:00
71a98f3c28 Make EiffelWeb standalone easier to debug by using in some locations error instead of exception for network error.
- Added C external to use C `recv` feature with error (as opposed to have exception raised on network error).
2016-10-05 10:45:57 +02:00
ed22be2551 Commented the execute_bad_request, since it is not ready and will trigger error most of the time. 2016-10-05 00:04:21 +02:00
77085364ee Improve socket management for EiffelWeb standalone connector. 2016-10-04 18:49:48 +02:00
0217c6d3f4 First attempt to response with bad request message when bad request is detected. 2016-10-04 13:00:38 +02:00
55fec2423c Added ssl test case for standalone wsf connector. 2016-10-04 12:59:56 +02:00
1f7a81a2d6 Updated workbook, minor changes (removed mention about nino, added libfcgi info). 2016-10-04 12:56:11 +02:00
612ff243c1 Also display SSL information when verbose is enabled for EiffelWeb standalone connector. 2016-10-02 20:05:44 +02:00
40fb3893af Include wsf_proxy to the installation process. 2016-09-27 16:18:06 +02:00
21407f8dcf Fixed SSL support on the httpd component, and also on the EiffelWeb standalone connector.
- the standalone connector support for SSL, is using certicate files for now (no in-memory support).
  - to enable ssl support, set ecf variable `httpd_ssl_enabled=true`.
  - added the `simple_ssl` example to demonstrate how to have standalone ssl server.
    (be careful when using EiffelNet SSL and the http_client library, disable the libcurl
      via ecf variable `libcurl_http_client_disabled=true` )

Added support for recv timeout to the EiffelWeb standalone connector.
  - made EiffelWeb compilable with 16.05 and upcoming 16.11.
    Done via ecfs condition on version to accept EiffelNet with recv_timeout (from 16.11), and without (until 16.05).
  - adding recv timeout prevents server to hang for ever if a client wait too long to send data.

Updated various comments.
2016-09-27 16:11:47 +02:00
356eb143ea Fixed the non void-safe ecf for wsf_proxy. 2016-09-26 17:42:49 +02:00
df551d4a4f Use latest API from http_client using DEFAULT_HTTP_CLIENT,
that could use libcurl or EiffelNet depending on the configuration (.ecf).
2016-09-26 13:13:57 +02:00
f010da04e9 Merge branch 'reverse_proxy' 2016-09-19 22:19:21 +02:00
5029049ef0 Replaced host+port by uri (http://remotemachine:port/path).
Added support for SSL (https).
2016-08-08 12:30:28 +02:00
80254b2278 When possible keep ecf location relative within the same EiffelWeb directory structure. 2016-08-06 10:07:42 +02:00
210fae5000 First step towards SSL support. 2016-08-06 10:04:45 +02:00
9cc9b95190 Added a simple reverse proxy handler.
- For now, it does not support SSL connection on the target yet.
- No external config file support, this is all about coding.
2016-08-05 11:38:35 +02:00
8b172b5d33 Revisited WSF_REQUEST.read_input_data* functions:
- read_input_data_into_file now accepts a IO_MEDIUM argument instead of just FILE.
- cleaned the implementation, and make sure that eventual `raw_input_data` is containing only the raw input data.
2016-08-05 11:32:14 +02:00
cc2d7dbb1c Ignore empty header line. 2016-08-05 11:28:59 +02:00
c88394b9fd Added support for category in ATOM format (input and output). 2016-06-24 13:03:09 +02:00
4283662f43 Removed unwanted .ecf file. 2016-06-22 10:55:41 +02:00
1b951376f9 Added more application logic for the example. 2016-06-22 10:52:36 +02:00
193cc3cbde Renamed WGI_STANDALONE_CONNECTOR_ACCESS as WGI_STANDALONE_CONNECTOR_EXPORTER.
Isolate the websocket implementation in descendant of {WEB_SOCKET_EVENT_I}.
Added very simple echo websocket example.
+ code cleaning.
2016-06-22 10:46:15 +02:00
b49e841ac7 Added WSF standalone_websocket connector, that provides websocket on top of standalone connector. 2016-06-21 23:37:48 +02:00
8ba74e1c90 Log when a persistent connection is reused.
Use anchor type on `{WGI_STANDALONE_CONNECTOR}.configuration` and `{WSF_STANDALONE_SERVICE_LAUNCHER}.connector`.
Add access to the socket of standalone input stream from `{WSF_STANDALONE_CONNECTOR_ACCESS}`.
Removed a useless redefination in `WSF_EXECUTION`.
2016-06-21 23:36:22 +02:00
0cecb9594c Fixed signature of {HTTPD_CONFIGURATION_I}.set_ca_key . 2016-06-16 10:37:26 +02:00
e384a6d6ed Make it easier to reuse the http network classes.
This is to make it easier for websocket solution to reuse httpd implementation.
2016-06-16 10:23:30 +02:00
71a5c086a5 Moved httpd from src to lib, under standalone connector. 2016-06-15 18:04:00 +02:00
dfa60bf8f5 Prepared httpd_stream to be useable for client too.
Fixed obsolete tests/dev compilation (mainly to avoid wrong failure reports).
added package.iron files.
2016-06-15 17:56:22 +02:00
113aa69efc Added advanced settings for standalone connector
- max_concurrent_connections=100
- keep_alive_timeout=15
- max_tcp_clients=100
- socket_timeout=300
- max_keep_alive_requests=300
And then can be set via the options as well, and via .ini file.
Also improved the verbose console output system.
2016-06-15 09:19:23 +02:00
af5fc75743 Using passive regions.
Improve connector options mainly for standalone connector.
Updated "simple" example to return a timestamp.
2016-06-14 16:01:37 +02:00
Jocelyn Fiat
e53c960a89 Added libfcgi target, in addition to standalone target for the upload_image example. 2016-05-31 22:24:26 +02:00
Jocelyn Fiat
63be2c278c Fixed bad usage of {SOCKET}.socket_ok that resulted in bad behavior on linux. 2016-05-31 22:19:52 +02:00
Jocelyn Fiat
f8ba741aa2 Using -lfcgi as external linker flag, rather than /usr/lib/libfcgi.so .
Note on Ubuntu: apt-get install libfcgi-dev
2016-05-31 18:51:15 +02:00
Jocelyn Fiat
fe07af587d Updated link to github pages documentation. 2016-05-31 16:57:06 +02:00
Jocelyn Fiat
a3a9dd1393 Fixed link to image or source code in markdown workbook text. 2016-05-31 16:51:20 +02:00
Jocelyn Fiat
fbb860024d Updated markdown text to conform strictly to kramdown syntax. 2016-05-31 16:39:50 +02:00
Jocelyn Fiat
a14488346f Updated to kramdown markdown syntax (i.e github).
Updated various content and nav links.
2016-05-27 09:51:24 +02:00
Jocelyn Fiat
f74d1b3069 Updated markdown relative links. 2016-05-26 23:11:19 +02:00
Jocelyn Fiat
1ba3528974 Added readme.md in /doc/. And updated workbook readme.md itself. 2016-05-26 10:41:07 +02:00
5890ca6f73 Removed warning about unknown class in export clause. 2016-05-25 22:51:45 +02:00
7f4bf09d84 updated readme.md to link to workbook. 2016-05-25 19:17:38 +02:00
Colin Adams
ad90e7c135 Fix for missing error reporting in WSF_PUT/POST_HELPER 2016-05-20 17:37:47 +02:00
cc3c8af6b4 Updated HTTP_COOKIE implementation
- by default the Cookie does not set max-age and expires, so it defines a Session Cookie.
   (max_age and expires attributes are not included in the response)
 - set_* and unset_* features to define max_age and expire attributes.
 - marked old features as obsolete.
Updated test cases.

Signed-off-by: jvelilla <javier.hector@gmail.com>
2016-05-04 12:26:17 +02:00
b35ec65577 Updated EWF Windows tools to install EWF into EiffelStudio source tree. 2016-02-03 18:03:43 +01:00
4482520a86 Removed useless library declarations. 2016-02-03 15:12:54 +01:00
e9afc9ad17 Updated package.iron files. 2016-02-02 09:57:03 +01:00
55ab6969ee Do not html escape ' with &apos;
reason: the named character reference &apos; (the apostrophe, U+0027) was introduced in XML 1.0 but does not appear in HTML. Authors should therefore use &#39; instead of &apos; to work as expected in HTML 4 user agents.
2016-01-20 17:53:06 +01:00
d982bc06ad Eiffel code and ECFs update to support new agent notations. 2016-01-18 21:42:59 +01:00
2ca87d53b8 Added process_transfer to implement process_file. This way, it is easier to redefine the transfert implementation, or the process_file directly, if needed. 2016-01-18 17:05:35 +01:00
1a4db1d7c6 Eiffel code and ECFs update to support new agent notations.
Removed contrib/library/.../json library.
2016-01-18 16:41:10 +01:00
3bb9101b07 Improved error library by refactorying the sync as two way propagation.
Now one can setup error handler propagation in one way, or two way (sync).
The "reset" applies in both way, even if this is a one way propagation to fit current existing usage.
Added optional id for the error handlers.
Feature renaming according to design changes.
Added related autotest cases.
2016-01-12 16:09:29 +01:00
1b2496b7f0 Better EMAIL.message computing.
Send end of input file for stdin mode.
2016-01-12 16:04:24 +01:00
d20c377580 Fixed Reply-To: implementation in notification mailer.
Added helper routines to query additional header, and reset Cc:, and Bcc: values.
2016-01-08 21:46:01 +01:00
166d0839b7 Fixed end_of_input by using SOCKET.readable. 2015-12-28 23:45:04 +01:00
fbe0732210 Removed uuid in wsf_session ecf files. 2015-12-28 18:05:18 +01:00
b5d6a75155 Fixed table item output by appending html attribute for WSF widget table item. 2015-12-28 17:40:59 +01:00
4fc4b02449 Made WSF_TABLE a TABLE_ITERABLE. 2015-12-28 17:40:20 +01:00
5276bd1479 Fixed URI mapping with regard to trailing slash handling. 2015-12-28 17:39:54 +01:00
Javier Velilla
81ab31b19a Updated workbook
Added EWF Deployment title
2015-12-22 11:44:21 -03:00
Javier Velilla
e21e30ff74 Updated workbook
Added deployment document
2015-12-22 11:43:17 -03:00
Javier Velilla
3a9ba75717 Initial commit Deployment file 2015-12-22 11:37:25 -03:00
7d94413297 removed non void-safe tests.ecf for feeds library 2015-11-05 21:48:17 +01:00
35855941e6 Comment and code cleaning. 2015-11-05 21:37:44 +01:00
50ba8ca703 Fixed various unicode issue related to query and form parameters.
(Especially for the multipart/form-data encoding.)
Factorized code related to smart parameters computing (handling list , table, ...) in WSF_VALUE_UTILITIES.
Fixed an issue with percent_encoded_path_info computation from request_uri.
Fixed issue with cookie addition having same cookie name.
Fixed unicode support for uploaded file.
WSF_STRING is reusing WSF_PERCENT_ENCODER.
Use unicode output for WSF_DEBUG_HANDLER.
Code cleaning
2015-11-05 21:32:24 +01:00
dde6a0b7de Added specific configuration file, so that it is easier to use either libcurl or net implementation. 2015-10-19 08:46:31 +02:00
b64a281d75 Fixed timeout issue due to too many "ready_for_reading".
Fixed Connection behavior.
Fixed Content-Type settings.
Removed condition on POST or PUT, since code also applied to any request methods.
Added verbose output implementation.
2015-10-19 08:46:30 +02:00
b69b8aaaf9 Added first support for persistent connection in NET http client implementation.
Various improvement related to eventual errors.
2015-10-19 08:46:29 +02:00
65b28ed877 Updated README.md with configuration topics related to libcurl or net disabling.
Fixed ssl test by precising insecure ssl.
2015-10-19 08:46:27 +02:00
6c7637716b Updated a few comments
Removed useless NULL_HTTP_CLIENT.
Extracted mime code from NET_HTTP_CLIENT_REQUEST.response into specific routine.
2015-10-19 08:46:26 +02:00
ff9a238f5c Added https support with Net implementation.
Added notion of default HTTP_CLIENT, to be able to build portable code among http client implementation.
2015-10-19 08:46:25 +02:00
eec3cbdba1 Added null http client for upcoming changes.
Refactored NET request implementation.
  - fixed potential issue with header conflict.
  - simplified, and extract parts of the code into routine.
  - Implemented read of chunked Transfer-Encoding
  - Fixed potential issue with socket handling.
First steps to be able to exclude net or libcurl implementation when using http_client lib.
Removed from NET implementation the hack related to PUT and upload data (it was used to workaround an issue with libcurl).
2015-10-19 08:46:23 +02:00
29c4931dc0 Added support for chunked transfer-encoding response.
Implemented correctly the redirection support for NET_HTTP_CLIENT...
Added the possibility to use HTTP/1.0 .
Splitted the manual tests that were using during development.
First step to redesign and clean the new code.
2015-10-19 08:46:22 +02:00
Florian Jacky
9cd0f0b117 Fixed configuration files 2015-10-19 08:46:21 +02:00
Florian Jacky
aa0eb4fc43 Fixed configuration files 2015-10-19 08:46:20 +02:00
Florian Jacky
dbdc594b59 config files 2015-10-19 08:46:18 +02:00
Florian Jacky
4176a8c68b correct password for authentication test 2015-10-19 08:46:17 +02:00
Florian Jacky
0557d1ee2d added remaining features 2015-10-19 08:46:16 +02:00
Florian Jacky
eed8af9a0a now supports sending requests, receiving headers, receiving message text, redirection, agent header, cookies, basic http authorization, sending data using post using url-encoding, sending file as post as data, sending put data 2015-10-19 08:46:15 +02:00
Florian Jacky
1b881c4f60 implemented http authorization, support for redirection and user-agent 2015-10-19 08:46:14 +02:00
Florian Jacky
770488dbd3 implemented http authorization, support for redirection and user-agent 2015-10-19 08:46:12 +02:00
3f69081d32 Added postcondition to ensure the result of {HTTP_CLIENT_REQUEST}.response is attached.
(useless with void-safety compilation, but keep it for non void-safe execution).
2015-10-19 08:46:11 +02:00
7033db7dc4 Removed useless redefination of is_equal. 2015-10-19 08:46:10 +02:00
a1a16b4a22 Fixing http_client.ecf file with correct locations. 2015-10-19 08:46:09 +02:00
98e92ee0fe Basic initial Eiffel NET implementation. 2015-10-19 08:46:07 +02:00
29b55f36cf Added skeleton for Eiffel Net implementation of HTTP_CLIENT solution.
This is work in progress.
2015-10-19 08:46:06 +02:00
061e88c9fe Added FEED.prune (a_item: FEED_ITEM). 2015-10-14 17:40:38 +02:00
66f204b1f2 Make custom error interface more flexible with READABLE_STRING_... instead of STRING_... 2015-10-10 00:58:07 +02:00
c92b1b8c3b Added feed to xhtml visitor.
Updated interfaces, mainly related to date attributes.
2015-10-09 19:08:53 +02:00
98c12b8fb9 Made HTTP_DATE more flexible and support UTC+0000, GMT+0000 and now also +0000.
Added comments.
2015-10-08 11:00:01 +02:00
5fee483fd9 Added FEED + FEED operator to merge two feeds.
Added FEED sorting routine.
Added FEED_ITEM.link: detachable FEED_LINK that represents the main feed link.
Comments.
2015-10-08 10:10:08 +02:00
f7a7afccd6 Fixed compilation of non void-safe feed.ecf 2015-10-05 22:58:58 +02:00
e2c70e6d70 Updated a few comments.
Renamed generator to follow *_FEED_GENERATOR naming.
Renamed feed entry as feed item.
Made FEED conforms to ITERABLE [FEED_ITEM] for convenience.
2015-09-16 10:02:09 +02:00
a5e150d1c0 Improved feed library with comments, bug fixes and code factorization. 2015-09-08 21:45:27 +02:00
39887c8bdb Added initial ATOM and RSS feed parser and generator.
(work in progress)
2015-09-07 19:22:50 +02:00
jvelilla
1f1e2abbda Removed support for SSLv3 2015-08-26 11:56:24 -03:00
1796d9631f Added target "all_stable_with_ssl" to check compilation with ssl enabled. 2015-08-26 13:38:50 +02:00
389975e409 Merge branch 'v1' 2015-08-24 16:13:01 +02:00
6c51590369 Updated installation location of openid and http_authorization in ISE package.
Added iron package file for ewsgi.
2015-08-24 16:12:25 +02:00
jvelilla
cc65bae644 Fixed typo: Aug instead of Aou. 2015-08-06 10:45:47 +02:00
jvelilla
c824f707cf Fixed typo: Aug instead of Aou. 2015-08-06 10:42:15 +02:00
47c5b798b3 Cosmetic true -> True 2015-08-04 13:24:03 +02:00
f0cba1d536 Fixing script_url' that wrongly used path_info' instead of `percent_encoded_path_info'.
(issue on script_url when path info contains unicode character).
2015-08-04 13:21:36 +02:00
ed891546bc Updated set_value for WSF_FORM_SELECTABLE_INPUT (for example a checkbox).
Call the feature set_checked_by_value iff the the current value exist in the
list of values, in other case set checked in Flase.
If we call set_checked_by_value without filter, previous checked values will be
set in False.
2015-08-04 13:21:07 +02:00
8651ff6e1e Fixing script_url' that wrongly used path_info' instead of `percent_encoded_path_info'.
(issue on script_url when path info contains unicode character).
2015-08-04 13:03:51 +02:00
629edea991 Merge remote-tracking branch 'javier/ewf_html_form' into v1 2015-08-04 13:00:08 +02:00
jvelilla
1e10ce8518 Updated set_value for WSF_FORM_SELECTABLE_INPUT (for example a checkbox).
Call the feature set_checked_by_value iff the the current value exist in the
list of values, in other case set checked in Flase.
If we call set_checked_by_value without filter, previous checked values will be
set in False.
2015-07-31 11:55:23 -03:00
4f8f17ad48 Fixed various compilation issues.
Ensure the obsolete/v0 ecf has new UUID.
2015-07-03 20:02:13 +02:00
148518984e Added the possibility to provide the sendmail location in NOTIFICATION_SENDMAIL_MAILER.
Added NOTIFICATION_STORAGE_MAILER which allow to store the email in a storage (could be just output, file, database ...)
Added SMTP implementation, based on EiffelNet SMTP_PROTOCOL.
   note: it is possible to exclude this by setting ecf variable "smtp_notification_email_disabled" to "True"
   this way help to manage dependencies, since the Eiffel Net library would not be included neither.
Fixed Date header value computation.
2015-07-03 10:02:56 +02:00
33150e34d6 Reverted previous changed related to redefinition of set_status_code which was against existing assertions. 2015-07-02 15:11:33 +02:00
af60a5719e Updated eiffelstudio locations for EWF libraries. 2015-07-02 13:06:38 +02:00
31557cfc33 Fixed WGI_HTTPD_REQUEST_HANDLER.process_rescue
Fixed WGI_STANDALONE_OUTPUT_STREAM.is_available
Added WGI_STANDALONE_RESPONSE_STREAM.is_persistent_connection_supported
2015-07-02 10:50:41 +02:00
78c0cd5b0d Merge branch 'v1' of https://github.com/EiffelWebFramework/EWF into v1 2015-07-01 21:48:47 +02:00
412534d0be Fixed compilation of all*-safe.ecf files.
Corrected a few comments.
2015-07-01 21:43:54 +02:00
jvelilla
0f6aa8d7ae Merge branch 'jvelilla-ewf_v1_workbook' into v1 2015-06-30 09:58:40 -03:00
jvelilla
2c745c63d3 Updated workbook: generating response, handling cookies and headers documents. 2015-06-30 09:21:12 -03:00
jvelilla
efd80c1287 Updated workbook form document 2015-06-30 09:00:47 -03:00
jvelilla
01f649fd88 Updated: workbook headers document.
Removed: unnecessary files.
2015-06-30 08:57:00 -03:00
jvelilla
f23aeb6412 Updated Workbook basic documentation. 2015-06-30 08:42:29 -03:00
jvelilla
1a4596c79b Merge branch 'ewf_v1_workbook' of https://github.com/jvelilla/EWF into ewf_v1_workbook 2015-06-29 19:05:25 -03:00
jvelilla
b16e4aa570 Updated basic documentation 2015-06-29 19:03:54 -03:00
Javier Velilla
5255b15fa9 Update basics.md 2015-06-29 18:36:44 -03:00
jvelilla
57048373f4 Update basic document 2015-06-29 18:30:11 -03:00
Javier Velilla
9e06fb2ab8 Update basics.md 2015-06-29 16:24:09 -03:00
Javier Velilla
f2405e0ccd Update basics.md 2015-06-29 16:22:01 -03:00
Javier Velilla
6e3a7deb6e Update workbook.md 2015-06-29 16:20:19 -03:00
jvelilla
f254b599c0 Update basic document to the new EWF concurrent design 2015-06-29 16:17:43 -03:00
99a05b95ba Improved code related to cookie management (avoid duplicated cookie). 2015-06-22 22:06:16 +02:00
54dd43c38a Synchronized wsf-safe.ecf and wsf.ecf 2015-06-18 14:53:19 +02:00
903f925a79 Changed the way SSL is supported with standalone connector (httpd lib).
Now by default, SSL is not supported,
  and if an application wants the SSL support,
  the related .ecf has to set custom variable "httpd_ssl_enabled" to "true"
2015-06-17 17:22:59 +02:00
80709578d6 Updated workbook Eiffel code to follow new EWF concurrent design. 2015-06-16 20:34:57 +02:00
c0d5b7c968 Added make_from_execution procedure to ease implementing various use cases. 2015-06-16 15:02:17 +02:00
7bea163f46 Updated ecf from obsolete v0 folder to include the "_v0" suffix in the library names. 2015-06-14 21:34:41 +02:00
8992dbc515 Added wsf_html in the obsolete v0 folder.
mostly because it is also dependent on "wsf", so it has to be using the obsolete v0 ecf.
2015-06-12 19:01:35 +02:00
c2d3ea6138 Simplified file names, and harmonized with estudio wizards. 2015-06-12 12:56:46 +02:00
9e336deb49 Updated EWF estudio wizard. 2015-06-12 12:43:54 +02:00
0160ce05dd Updated wizard template ecf to take into account current limitation, or known issue related to libcurl and ssl. 2015-06-12 12:00:54 +02:00
7d089a88c2 Made compilable without SSL enabled
(i.e when variable named "httpd_ssl_disabled" is set to "true")
2015-06-11 10:08:44 +02:00
ab0bc7b314 Marked most of the *_with_request_methods procedure obsolete by the same feature name without the "_with_request_methods".
Added argument passing request methods to feature without the _with_request_methods.
Prefer "thread" concurrency for now in examples.
2015-06-10 17:52:26 +02:00
0e3e97a7fd Added a few example based on the obsolete libraries (v0).
Updated the tutorial example.
Added WSF_MESSAGE_EXECUTION.
2015-06-10 16:49:23 +02:00
b790c7fd21 cosmetic, cleaning. 2015-06-10 10:59:24 +02:00
d0836d49a4 Merge branch 'v1' 2015-06-10 09:49:28 +02:00
9424b1e369 Merge branch 'master' into v1 2015-06-08 10:10:51 +02:00
64463df552 Fixed various compilation error or warning. 2015-06-05 12:17:53 +02:00
jvelilla
61f90bba38 Merge branch 'jvelilla-ewf_wsf_html5' 2015-05-29 15:38:30 -03:00
jvelilla
fac3dd3946 Merge branch 'ewf_wsf_html5' of https://github.com/jvelilla/EWF into jvelilla-ewf_wsf_html5 2015-05-29 15:38:08 -03:00
jvelilla
e1b583a2b3 Updated code based on comments 2015-05-28 10:07:40 -03:00
jvelilla
8c8dfdd4a3 Updated code based on review 2015-05-28 10:04:13 -03:00
jvelilla
857397e226 Updated code inherit from SHARED_HTML_ENCODER instead of creating new objects. 2015-05-28 09:39:14 -03:00
jvelilla
94340c1c01 Updated html5 classes based on review 2015-05-28 09:19:21 -03:00
8b60ab08e3 Added WSF_FILE_UTILITIES.new_file (p: PATH): detachable G
in order to provide non existing file, but not only for temporary files purpose.
2015-05-22 22:27:28 +02:00
jvelilla
28e51cc314 Initial import HTML5 support for attributes and input types.
Attributes
- Added support for new HTML5 attributes.
missing support for : form, list, and multiple attributes.

Input types: added the all the new input types.

Added test cases, still in progress.
2015-05-21 12:32:08 -03:00
jvelilla
a7c8d40b3e Moved EWF workbook from ewf_example to EWF main repository. 2015-05-18 11:06:04 -03:00
d4c0ff03b4 Added package.iron for nino library. 2015-05-12 19:04:36 +02:00
7fbfda3a66 Refactored wsf router dispatching implementation.
Now the path to take into account during dispatching is computed once
  in WSF_ROUTER.path_to_dispatch (req: WSF_REQUEST): READABLE_STRING_8
  And this function could be redefined in descendant of WSF_ROUTER.
2015-05-12 18:37:25 +02:00
9e467689df improved nino port number validation 2015-05-12 18:25:22 +02:00
dd5c89e31c Fixed compilation of SSL_TCP_STREAM_SOCKET with recent do_accept changes. 2015-05-07 10:44:38 +02:00
fffa763d05 Updated a few comments. 2015-05-06 22:37:55 +02:00
d015c065f6 Updated readme. 2015-05-06 22:18:27 +02:00
8ea443c115 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-05-06 22:17:37 +02:00
019393fdb1 Fixed typo. 2015-05-06 22:17:35 +02:00
da8028f8b3 Fixed a typo. 2015-05-06 22:17:33 +02:00
20ed000879 Added a few descriptions and comments. 2015-05-06 22:16:57 +02:00
jvelilla
24620b228c Added feature comments.
Added missing postconditions.
2015-05-06 22:16:10 +02:00
jvelilla
9c7e29b836 Added descriptions and comments 2015-05-06 22:16:08 +02:00
jvelilla
a0e9a41e21 Added descriptions and feature comments. 2015-05-06 22:16:07 +02:00
jvelilla
dd9aff03d3 Added features comments. 2015-05-06 22:16:05 +02:00
jvelilla
dc35925eb0 Added Missing Class and feature descriptions.
Removed author entry.
2015-05-06 22:16:03 +02:00
a1a620a9c3 Export request and response from WGI_EXECUTION to itself.
Added WSF_FILTERED_ROUTED_SKELETON_EXECUTION
2015-05-06 22:16:00 +02:00
d8ea9ba63c renamed keep_alive_requested as is_persistent_connection_requested. 2015-05-06 22:15:59 +02:00
c42af5b2de Following the spec, use "keep-alive" and "close" in lowercase for Connection header. 2015-05-06 22:15:57 +02:00
d9cbc72058 Better support for HTTP/1.0 and also related to persistent connection. 2015-05-06 22:15:56 +02:00
7e057b20b1 Improved support for HTTP/1.0 persistent connection. 2015-05-06 22:15:54 +02:00
3165c1e5c6 Enable support for persistent connections.
(test: works fine with curl -k , but weird behavior with ab -k ...)
2015-05-06 22:15:53 +02:00
89e26519e4 First step to improve a bit error handling related to socket disconnection.
Mainly in standalone connector for now.
2015-05-06 22:15:51 +02:00
9d20e85c03 Improved the simple_file example with image, and not found message.
Use standalone connector in SCOOP concurrency mode.
2015-05-06 22:15:50 +02:00
48cb99498c Cleaned simple example, and made the standalone target with SCOOP concurrency. 2015-05-06 22:15:48 +02:00
8246bc1444 Updated various indexing notes.
Removed a few obsolete classes.
Cosmetics
2015-05-06 22:15:46 +02:00
9e1083eba8 Added migration note. 2015-05-06 22:15:44 +02:00
4907bc3085 Migrated most of the example and library to new design. 2015-05-06 22:15:43 +02:00
7d2ce8a77f Implemented support for base url in httpd connector. 2015-05-06 22:15:38 +02:00
b4a9c92ffc Migrated simple, simple_file and upload_image example.
Adapted EWF accordingly.
2015-05-06 22:14:48 +02:00
bf0eb9a02d Added SCOOP support for WSF.
WSF_SERVICE is deeply changed, and addition of WSF_EXECUTION.
Todo: code cleaning, removing useless things.
2015-05-06 22:13:22 +02:00
ddf73077b3 Support for concurrencies: none, thread and SCOOP 2015-05-06 22:13:19 +02:00
3da80fce0d Finally SCOOP supported. 2015-05-06 22:13:17 +02:00
0970de5dc6 Experiment to avoid pseudo sequential execution 2015-05-06 22:13:15 +02:00
557b11f4e6 First attempt to use `{NETWORK_STREAM_SOCKET}.accept_to' 2015-05-06 22:13:13 +02:00
7f27a6c797 First steps to provide a concurrent compliant EWF connector. 2015-05-06 22:13:11 +02:00
c778e454cd Renamed a few index.md as README.md 2015-05-05 11:13:12 +02:00
44757b73eb Renamed Home.md as README.md 2015-05-05 11:10:36 +02:00
525978db1d Update doc structure, and fixed a few links. 2015-05-05 10:57:58 +02:00
71c90a2f39 Updated mediawiki and markdown link to local pages,
in order to use those files as browseable documentation, and close the github wiki.
2015-05-05 10:22:21 +02:00
8057dca032 Merge remote-tracking branch 'ewf_wiki/master' 2015-05-05 10:06:12 +02:00
91d7b956b9 update README to add google groups info. 2015-05-05 09:58:36 +02:00
881625a0f6 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.
2015-04-07 19:27:30 +02:00
b7a12eddaf Merge branch 'master' of https://github.com/eiffelhub/json 2015-04-07 18:36:38 +02:00
jvelilla
44b1ccbc3c Merge branch 'jvelilla-ewf_cookie' 2015-03-20 09:35:51 -03:00
jvelilla
30261632f6 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.
2015-03-19 15:23:06 -03:00
jvelilla
08db0748f4 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-19 09:39:41 -03:00
jvelilla
9dc22bee24 Updated HTTP_COOKIE class based on comments.
Added missing descriptions in test classes
2015-03-17 17:00:07 -03:00
jvelilla
c4d362ff31 Added the add_cookie feature
Added test cases to check cookies in WSF_RESPONSE-
Added mock classes use for test cases.
2015-03-17 14:27:53 -03:00
jvelilla
4a35ff7b77 Updated code based on Jocelyn's comments. 2015-03-13 17:41:48 -03:00
jvelilla
871e9792a5 Added HTTP_COOKIE and test cases.
Added WSF_COOKIE class, inherit from HTTP_COOKIE.
2015-03-13 15:28:38 -03:00
5f4ab50bf9 Completed configuration setting to be compilable with recent changes in EiffelNet / NETWORK_STREAM_SOCKET interface. 2015-03-12 22:16:28 +01:00
f0a49aaf0a fixed location of before_15_01 folder. 2015-03-11 14:52:14 +01:00
1aae58e00b Removed the -safe since now new project should be void-safe 2015-03-05 20:37:28 +01:00
f81e5251e8 moved wizard under tools/estudio_wizard 2015-03-05 16:01:45 +01:00
b26504b4a1 moved wizard from tools to helpers 2015-03-05 16:00:43 +01:00
4eddad0bcb Updated script to install wizard in current EiffelStudio installation. 2015-03-05 15:27:29 +01:00
1b9aa0c598 Updated the ewf estudio wizard to have a console and a graphical wizard.
Usage:  wizard -callback file.cb path-to-rootdir folder.
2015-03-05 15:23:13 +01:00
6e52774507 Prepare nino ecf to be compilable with upcoming changes in EiffelNet / NETWORK_STREAM_SOCKET interface.
As EiffelNet release is related to EiffelStudio release,
   the condition "compiler version <= 15.02) is used,
   which means that before for release 15.01 and previous EiffelStudio
   releases, the project uses a specific TCP_STREAM_SOCKET, and for
   upcoming releases, it will use another version of that class).
  (see rev#96640 from eiffelstudio subversion repository)
2015-02-18 10:14:08 +01:00
e5403462bc Prepare nino ecf to be compilable with upcoming changes in EiffelNet / NETWORK_STREAM_SOCKET interface.
(see rev#96640 from eiffelstudio subversion repository)
2015-02-18 10:08:36 +01:00
33b555ff27 Fixed implementation of JSON_PARSER.is_valid_number (STRING): BOOLEAN 2015-01-08 18:57:31 +01:00
4c552671c1 Updated install_ewf.bat to use the new "ecf_tool" from https://svn.eiffel.com/eiffelstudio/trunk/Src/tools/ecf_tool . 2014-12-02 10:51:08 +01:00
25a362d043 Added more test cases for cookies. 2014-12-02 10:50:29 +01:00
023e03bb8f Completed change on debug handler and filter, to use WSF_DEBUG_INFORMATION. 2014-12-02 10:45:33 +01:00
0caad2105f Merge branch 'fix_cgi_value' of github.com:jocelyn/EWF 2014-12-01 15:53:45 +01:00
f14fdc2a69 Added assertions on router helpers, and also agent handler.
Closes issue #159
2014-12-01 15:44:49 +01:00
440d3f9c91 Fixing issues related to status code. 2014-11-28 16:10:50 +01:00
975ef90bab Better code for restbucks ORDER_HANDLER related to allowed_cross_origins and last_modified. 2014-11-28 16:06:30 +01:00
8c63e74b81 Fixed compilation of restbucks example using the policy driven framework. 2014-11-25 22:19:46 +01:00
6b9d248542 WSF_TRACE_RESPONSE should include "Content-Type: message/http" header
Close issue #145
2014-11-25 15:55:48 +01:00
6d2318ac9b 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-24 22:22:12 +01:00
Colin Adams
0f76518b63 Added {WSF_REQUEST}.http_content_encoding 2014-11-19 14:41:50 +00:00
Colin Adams
bb5faec3c6 Issue #154 (documentation error in {WSF_SKELETON_HANDLER}.check_request) 2014-11-19 10:35:06 +00:00
Colin Adams
22301fc15d issue #149 (Simple CORS support for GET requests in policy-driven framework) 2014-11-18 16:02:10 +00:00
Colin Adams
f482ef06d5 Issue #150 (VARY header set to header contents rather than heqader name) 2014-11-18 13:48:38 +00:00
Colin Adams
4f62da8f90 Issue #144 (Add last_modified to WSF_SKELETON_HANDLER) 2014-11-18 10:37:36 +00:00
Jocelyn Fiat
eaa3dd435a Merge pull request #148 from colin-adams/response-code-411
Policy-driven framework should reject PUT requests that contain a Content-Range header

Close Issue #143
2014-11-17 17:37:06 +01:00
Colin Adams
e1d1d52260 Issue #143 2014-11-17 16:20:28 +00:00
0cc0ba047f Reintroduced parse_object as obsolete, to avoid breaking existing code. 2014-11-17 16:05:33 +01:00
641e114fed 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-11-17 11:22:33 +01:00
73d45c9817 Updated WSF_FILE_UTILITIES with class comment,
and avoid having expanded generic class.
2014-10-28 12:52:23 +01:00
519b959073 Fixed compilation issue for wsf_js_widget package. 2014-10-10 16:06:03 +02:00
2cc751f326 Fixed compilation for wsf tests. 2014-10-10 14:26:50 +02:00
99588faf40 fixed compilation of filter example. 2014-10-10 13:51:20 +02:00
Jocelyn Fiat
9c6b6b978a Merge pull request #11 from jocelyn/improved_sept_2014
Fixed various issue with parsing string (such as \t and related),
    Implemented escaping of slash '/' only in case of '</' to avoid potential issue with javascript and </script>
    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.
    Marked converters classes as obsolete.
    Updated part of the code to use new feature names.
    Updated license and copyright.
    Updated classes with bottom indexing notes related to copyright and license.
2014-10-03 18:46:00 +02:00
0647a74875 Ensure backward compatibility for parse' / is_parsed'. 2014-10-03 18:44:09 +02:00
Jocelyn Fiat
de9d99e6bc Merge pull request #140 from jvelilla/ewf_router
Updated WSF_ROUTER, to import an existing router definition.
2014-10-01 19:41:38 +02:00
ae9f67391c Marked converters classes as obsolete. 2014-09-30 10:46:28 +02:00
82f832a556 Updated license and copyright.
Updated classes with bottom indexing notes related to copyright and license.
2014-09-30 10:46:12 +02:00
19dbbf89e7 Fixed various issue with parsing string (such as \t and related),
Implemented escaping of slash '/' only in case of '</' to avoid potential issue with javascript and </script>
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-09-24 20:08:12 +02:00
Olivier Ligot
5d6e3c69ee Fix filter example: logging filter must be the last one 2014-09-18 13:29:24 +02:00
Olivier Ligot
984d04e972 Filter example: add fcgi target 2014-09-17 17:11:37 +02:00
Olivier Ligot
83486ae0cc Fix authentication filter: use {HTTP_AUTHORIZATION}.is_basic 2014-09-17 15:40:43 +02:00
jvelilla
4fe5c5da7e Updated WSF_ROUTER.import feature. 2014-09-12 10:54:22 -03:00
jvelilla
ec1d8ca52f Updated WSF_ROUTER, to import an existing router definition. 2014-09-10 12:57:34 -03:00
Olivier Ligot
0404627153 Merge remote-tracking branch 'upstream/master' 2014-07-11 15:00:20 +02:00
jvelilla
de282948e6 Merge pull request #9 from Conaclos/working
Apply pretty tool.
2014-07-08 17:25:35 +02:00
Jocelyn Fiat
93f1fed997 Merge pull request #139 from jocelyn/widget_integration
Added custom-template in examples, as a base template to integrate easily other JS widgets.
2014-07-07 12:30:10 +02:00
f6ebd414d6 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.
2014-07-07 12:15:18 +02:00
ff19adc6c8 Improved comment related to PATH_INFO and stripping multiple slashes sequence to single slash. 2014-07-07 11:27:31 +02:00
Jocelyn Fiat
41d24c91b4 Merge pull request #138 from jocelyn/widget_integration
Integrated WSF_JS_Widget library provided by Yassin Nasir Hassan and Severin Munger as an ETH student project.
It was updated to better support Unicode, and other minor changes, this is still under "draft" folder, as it may need various modifications on the interface and implementation.
2014-07-07 11:19:43 +02:00
0427f7a8d3 Fixed compilation issue related to old usage of modified JSON library. 2014-07-07 11:14:36 +02:00
985a5e5ce7 Merge branch 'master' of github.com:EiffelWebFramework/EWF into widget_integration 2014-07-07 10:30:42 +02:00
fe4c283336 Move wsf_js_widget library under draft/library/server/wsf_js_widget 2014-07-07 10:26:10 +02:00
Conaclos
20e704604a Apply pretty print tool.
Apply on each class in test suite and library.
2014-07-04 17:59:05 +02:00
jvelilla
0db02a8c52 Merge pull request #8 from Conaclos/working
Tests - Update syntax and improve implementation
2014-07-04 14:07:41 +02:00
1b4b50ee80 Replace any multiple slash sequence by a single slash character for PATH_INFO. 2014-07-02 11:36:43 +02:00
446c692f97 Various changes related to new WSF_DEBUG_INFORMATION and WSF_DEBUG_HANDLER. 2014-07-01 19:59:08 +02:00
7dfc6ea67a 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-07-01 19:57:14 +02:00
jvelilla
a5a257f452 Update format 2014-07-01 04:47:23 -07:00
jvelilla
bde0e2900b Created Deployment (markdown) 2014-07-01 04:42:56 -07:00
Conaclos
361773101e Add documentation and contracts for domain types. 2014-06-30 18:32:14 +02:00
Conaclos
052860b62c Improve converters.
Replace old syntax with new one and improve
implementation.
2014-06-30 18:31:42 +02:00
Conaclos
c5e1b1ee69 Syntax update.
Replace assigment attempt with object test.
2014-06-30 18:28:13 +02:00
0b1697f20d Verbose mode for the WSF_DEBUG_HANDLER. 2014-06-30 15:45:54 +02:00
add71543a4 Fixed error introduced during refactorying on WSF_DEBUG_FILTER 2014-06-30 15:21:03 +02:00
66a1e0629c Improved the debug example, so that it outputs more information. 2014-06-30 15:16:31 +02:00
425c976032 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-30 15:13:47 +02:00
Jocelyn Fiat
397dcc6128 Merge pull request #133 from jocelyn/better_uploading_file
Improved the uploading of file in regard to temporary filename.
2014-06-23 16:06:29 +02:00
a3c403323d Raised the void-safety level to "complete"
Added comments.
2014-06-23 16:05:20 +02:00
942896aa0c Fixed library location for http 2014-06-12 20:02:57 +02:00
93c92c0e38 Avoid decoding PATH_INFO and PATH_TRANSLATED to follow CGI spec. 2014-06-12 19:54:30 +02:00
394ca46f03 Added example to help debugging EWF
This is mainly a kind of echo server .. that return the request information.
2014-06-12 19:52:41 +02:00
67641da44d Improved the uploading of file in regard to temporary filename.
Avoid to overwrite the same file for concurrent requests uploading the same filename.
2014-06-11 16:52:22 +02:00
Olivier Ligot
a826051979 Merge remote-tracking branch 'upstream/master' 2014-05-22 22:09:00 +02:00
Jocelyn Fiat
ce4c62a989 Merge pull request #131 from jocelyn/void-safe
Make sure to be able to compile in complete void-safe for 14.05 and still compile with 13.11
2014-05-14 16:21:21 +02:00
b59966595e Make sure to be able to compile in complete void-safe for 14.05 and still compile with 13.11 2014-05-14 16:18:10 +02:00
fcf8b63666 Make sure to be able to compile in complete void-safe for 14.05 and still compile with 13.11 2014-05-14 16:16:32 +02:00
cad9322839 Merge branch 'master' into void-safe 2014-05-14 11:32:28 +02:00
31fcd61401 Make sure to be able to compile in complete void-safe for 14.05 and still compile with 13.11 2014-05-14 10:14:51 +02:00
Jocelyn Fiat
0b11663da4 Merge pull request #128 from jocelyn/response_header
Extracting HTTP_HEADER_BUILDER from HTTP_HEADER
Improving wsf session usage
Various unicode related improvement for router and error library.
2014-05-14 10:06:58 +02:00
5a179f514c Minor change to avoid unecessary conversion from eventual immutable string 8 to string 8. 2014-05-14 10:04:17 +02:00
f099a70b87 Apply recent change on error_handler interface to support unicode error message in response. 2014-05-14 10:03:15 +02:00
1163b99f39 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.
2014-05-14 10:02:38 +02:00
ca6ccc7291 debug_output can return a string 32, so avoid truncated unicode value by returning a string 32 value for `debug_output' . 2014-05-14 09:59:29 +02:00
bb11c24681 check that cookies data is valid string 8 to follow assertions. 2014-05-14 09:53:04 +02:00
d158579bdc 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.
2014-05-14 09:45:15 +02:00
02f5a09689 Added comment to explain why conversion to string 8 is safe 2014-05-14 09:36:22 +02:00
cb3de17be9 renamed HTTP_HEADER_BUILDER as HTTP_HEADER_MODIFIER 2014-05-14 09:35:55 +02:00
fd66d79ecb Updated ecf files toward complete void-safety
Added iron package files.
Added libfcgi files to compile .lib and .dll on Windows
2014-04-22 21:47:29 +02:00
d6b77e938b Added more tests for uri-template matching, especially with url that contains %2F i.e the percent encoded slash '/' 2014-04-22 19:25:07 +02:00
3c8dc0a9e1 Fixed various Unicode text handling.
Moved example folder inside the library, and renamed it "demo"
Improved example code.
2014-04-22 16:36:29 +02:00
fdfeea508e Merge branch 'master' of https://github.com/EiffelWebFramework/EWF.wiki 2014-04-22 15:50:44 +02:00
99d0340e1b Merge branch 'master' of https://github.com/eiffelhub/json 2014-04-22 15:50:30 +02:00
a74cda2f33 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-22 15:45:31 +02:00
322fd80f40 Be sure to reset `is_https' to False, in case the wsf_request object is reused by the implementation. 2014-04-22 10:18:16 +02:00
7168941495 is_https should not rely on REQUEST_SCHEME which may still be "http" for SSL connection. 2014-04-22 10:09:03 +02:00
161607cf8a better comments. 2014-04-22 10:01:27 +02:00
d45cd032a7 Corrected support of https request in `server_url' (and callers).
Added query `is_https' to indicate if the request is done via a https connection or not.
2014-04-22 09:59:18 +02:00
Jocelyn Fiat
9db9a4957a Updated Documentation__Request (markdown) 2014-04-17 07:24:13 -07:00
Jocelyn Fiat
d089921ef5 Updated Documentation__Request (markdown) 2014-04-17 07:23:54 -07:00
Jocelyn Fiat
7f3ece2da9 Updated Documentation__Request (markdown) 2014-04-17 07:23:33 -07:00
4b497060a0 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-10 15:28:19 +02:00
d40131f863 Updated encoder library, especially URL encoders to reuse implementation of percent_encoder.e
Fixed JSON_ENCODER for %T and related.
Updated related autotest cases.
2014-04-09 18:10:51 +02:00
9999b5e400 Moved implementation of WSF_PERCENT_ENCODER into "encoder" library, and added the *partial* variant. 2014-04-09 17:19:09 +02:00
6e27f66306 Improved BASE64 to update has_error when decoding.
Added manual tests.
2014-04-09 16:56:40 +02:00
a4c1263190 fixed code for test_url_encoder 2014-04-09 16:22:42 +02:00
46920fb991 Do not try to read more bytes from input than provided Content-Length value. 2014-04-09 12:27:31 +02:00
d50b3cb28c For maintenance filter, response with http status code {HTTP_STATUS_CODE}.service_unavailable 2014-04-09 12:22:36 +02:00
6481d2ec7d Fixed all-stable-safe.ecf fusion 2014-04-09 12:22:25 +02:00
f94820c824 Fixing JSON encoding code to include among other TAB (%T <-> \t) 2014-04-09 08:34:43 +02:00
1d0a2363d8 Fixed issue with URL_ENCODER encoding (and small optimization) 2014-04-08 21:52:37 +02:00
Jocelyn Fiat
2100b856b0 Updated Documentation__Request (markdown) 2014-04-02 01:52:31 -07:00
Jocelyn Fiat
e687affd17 Updated Documentation__Request (markdown) 2014-04-02 01:52:00 -07:00
Jocelyn Fiat
195f3b4f68 Updated Documentation__Request (markdown) 2014-04-02 01:51:04 -07:00
cc7d268610 Code improvement
Cosmetic (comments, names, formatting)
2014-03-26 10:18:02 +01:00
hassany
acc8cda04f Fix STRING_32 issues 2014-03-19 23:13:16 +01:00
hassany
7c5637c063 Add javascript function 2014-03-19 21:37:07 +01:00
severin
b87392906b Updated readme 2014-03-19 16:58:08 +01:00
severin
4e7e1e9c45 Added more comments and assertions to all classes; clean up 2014-03-19 16:49:24 +01:00
da92d2d365 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-18 14:13:16 +01:00
ae0ba66416 Added comments, used better parameter names. 2014-03-17 21:30:34 +01:00
718cebc700 Extracting HTTP_HEADER_BUILDER from HTTP_HEADER
to provide useful interface on WSF_RESPONSE,
  and make WSF_SESSION easier to use.
2014-03-17 18:10:55 +01:00
a2cbcbbbc6 Updated demo_basic example to be easier to read, and demonstrate various scenario. 2014-03-13 13:06:57 +01:00
hassany
c5363c948c Extend documentation 2014-03-12 21:51:15 +01:00
severin
4f7086a6de Updated comments and added contracts for core controls in webcontrol 2014-03-12 17:21:39 +01:00
severin
3c4e15b386 Merge branch 'widget' of github.com:ynh/EWF into widget 2014-03-12 13:54:45 +01:00
hassany
6685b3679b Add file definition 2014-03-12 13:54:20 +01:00
severin
d6a27c26aa Added assets to library 2014-03-05 15:58:10 +01:00
severin
e7c4b949f5 Merge branch 'widget' of github.com:ynh/EWF into widget 2014-03-05 15:57:24 +01:00
severin
f89e0abe69 Simplified WSF_EMAIL_VALIDATOR regexp 2014-03-05 15:57:16 +01:00
YNH Webdev
cbcf9550f8 Rename WSF_FILE to WSF_FILE_DEFINITION 2014-03-05 15:07:21 +01:00
YNH Webdev
d4b877f18e Add Basepath 2014-03-05 15:05:26 +01:00
YNH Webdev
605a094910 Change STRING TO STRING_32 2014-03-05 14:54:45 +01:00
Jocelyn Fiat
a16a7358d1 Update README.md 2014-03-03 17:59:26 +01:00
Olivier Ligot
655c95158f json: comment '* text=auto' in .gitattributes 2014-03-03 14:18:07 +01:00
9eca723dc5 Added a demo application server for basic http autorization 2014-03-03 12:45:41 +01:00
bbc2bab0eb Removed usage of remote anchor types. 2014-02-28 14:25:13 +01:00
Jocelyn Fiat
fe913b0072 added anchor link for wiki and jekyl engine 2014-02-27 06:48:24 -08:00
Jocelyn Fiat
9ec2baf7d3 used <a name=".."></a> instead of <a name=".."/> form (jekill has trouble with it) 2014-02-27 06:39:28 -08:00
cc6d2f3023 Merge branch 'master' of https://github.com/eiffelhub/json 2014-02-27 09:16:48 +01:00
2ac717592d Merge branch 'master' of https://github.com/EiffelWebFramework/EWF.wiki 2014-02-27 09:16:19 +01:00
YNH Webdev
7ca62463b7 Rename progress_source 2014-02-26 10:55:33 +01:00
95971618ca Fixed autotests cases compilation of http_authorization library. 2014-02-24 22:07:24 +01:00
cb881877ac Fixed the ecf to test global compilation of EWF. 2014-02-24 21:56:23 +01:00
YNH Webdev
2cc26f98c6 Add class description to validators
Rename Wsf_progresssource
2014-02-23 19:10:23 +01:00
YNH Webdev
47b4357a72 Extend upload demo 2014-02-23 13:36:55 +01:00
YNH Webdev
a60bd19e58 Fix state transition 2014-02-23 13:14:09 +01:00
severin
439e43fad9 Began with class documentation 2014-02-21 00:23:35 +01:00
colin-adams
7abbc96347 Removed warning about not being part of release. 2014-02-11 00:39:03 -08:00
Jocelyn Fiat
e9b4a8abd5 Updated Home (markdown) 2014-02-03 09:38:20 -08:00
cb7c20a0b7 Udated to highest level of void-safety.
Fixed obsolete calls.
2014-02-03 09:52:09 +01:00
f5c2f9e017 Updated README.md 2014-01-27 10:10:41 +01:00
YNH Webdev
45ddc47b0e Finalize WSF_DYNAMIC_MULTI_CONTROL 2014-01-26 22:07:15 +01:00
YNH Webdev
8f148f2a5e Add dynamic multicontrol 2014-01-26 15:02:06 +01:00
YNH Webdev
5c9edeeae8 Image preview 2014-01-25 23:43:18 +01:00
YNH Webdev
13349d07a8 Fix upload state 2014-01-25 18:00:31 +01:00
991389e9b9 Update restbucksCRUD example to use "crypto" library rather than "eel".
Updated readme.md to add curl command to test the server.
2014-01-24 11:06:01 +01:00
d8487e6c12 Added PUT processing for image_uploader EWF example. 2014-01-24 11:06:00 +01:00
jvelilla
b7750b9d06 Udated to highest level of void-safety.
Fixed obsolete calls.
2014-01-12 16:56:16 -03:00
severin
d82cacc18f Merge branch 'widget' of github.com:ynh/EWF into widget 2014-01-11 12:53:59 +01:00
YNH Webdev
564248284a Add set value to value controls 2014-01-11 01:10:24 +01:00
severin
ee473d8844 Included time library to set current date in date picker 2014-01-11 00:19:04 +01:00
severin
2fb0d73439 Added ability to form element to get value (for convenience/completion) 2014-01-10 15:32:05 +01:00
severin
5dd8a83081 Added ability to show/hide border of form elements 2014-01-08 22:12:02 +01:00
severin
f83a8db25c Small change on date picker control, removed date input 2014-01-08 20:29:09 +01:00
jvelilla
a3e5da052e Merge pull request #127 from jvelilla/master
Fixed error with identity encoding.
2014-01-07 10:21:05 -08:00
jvelilla
942db6d708 Fixed error with identity encoding. 2014-01-07 15:09:54 -03:00
Jocelyn Fiat
48deb869de Created Documentation__Connector (markdown) 2014-01-07 05:12:09 -08:00
Jocelyn Fiat
69b67b3b4b Updated Documentation (markdown) 2014-01-07 05:11:40 -08:00
Jocelyn Fiat
6acdcb4e6d Created Documentation__Router (markdown) 2014-01-07 05:10:44 -08:00
Jocelyn Fiat
e832478b76 Updated Documentation _Router (markdown) 2014-01-07 05:10:23 -08:00
Jocelyn Fiat
c8e9a835f5 Created Documentation__Response (markdown) 2014-01-07 05:10:14 -08:00
Jocelyn Fiat
06c5f068db Created Documentation__Request (markdown) 2014-01-07 05:10:04 -08:00
Jocelyn Fiat
b81207e42e Created Documentation _Router (markdown) 2014-01-07 05:09:21 -08:00
Jocelyn Fiat
b312d69afa Updated Documentation (markdown) 2014-01-07 05:08:47 -08:00
Jocelyn Fiat
d1238a441d Created Documentation__Service (markdown) 2014-01-07 05:06:13 -08:00
Jocelyn Fiat
580739d0b4 Updated Home (markdown) 2014-01-07 04:52:59 -08:00
Jocelyn Fiat
093dec1808 Updated Documentation (markdown) 2014-01-07 04:22:11 -08:00
Jocelyn Fiat
2fb521aa42 Updated Documentation (markdown) 2014-01-07 03:37:03 -08:00
Jocelyn Fiat
992504a49f Updated Documentation (markdown) 2014-01-07 03:33:37 -08:00
Jocelyn Fiat
8696681710 Updated Documentation (markdown) 2014-01-07 03:28:25 -08:00
Jocelyn Fiat
73ce700ece Updated Documentation (markdown) 2014-01-07 03:17:44 -08:00
Jocelyn Fiat
c766881052 Updated Documentation (markdown) 2014-01-07 03:17:15 -08:00
Jocelyn Fiat
8bd14f5f21 Updated Documentation (markdown) 2014-01-07 03:13:06 -08:00
Jocelyn Fiat
45cd633e12 Updated Documentation (markdown) 2014-01-07 03:10:50 -08:00
Jocelyn Fiat
0744e13132 draft 2014-01-07 03:04:19 -08:00
severin
320584a693 Modified datepicker control 2014-01-06 01:36:32 +01:00
severin
514a44e022 Removed country chooser widget 2014-01-05 15:01:14 +01:00
severin
191a00649f fixed js 2014-01-05 02:00:46 +01:00
severin
ecfd5738ce modified country and date/time chooser 2014-01-05 01:26:11 +01:00
severin
25fe7c8725 Included bootstrap datetimepicker 2014-01-04 16:33:08 +01:00
severin
dbcb1def29 Added date chooser widget 2014-01-04 16:14:30 +01:00
severin
c4acbf563f Added precondition in layout control 2014-01-04 14:15:05 +01:00
severin
c9599f449f Removed add_dropdown methods from navbar, some cleanup in different controls 2014-01-04 13:43:51 +01:00
severin
e675e8aad9 ATTENTION: ugly append_attributes added to stateless control, replaces set_attributes -> maybe improve 2014-01-04 10:51:07 +01:00
severin
37aac7053a Moved set_attributes from BASIC_CONTROL to STATELESS_CONTROL 2014-01-04 10:30:34 +01:00
severin
9c9a132329 Merge branch 'widget' of github.com:ynh/EWF into widget 2014-01-03 12:06:53 +01:00
YNH Webdev
ce305d4e54 Add disable option 2014-01-02 18:19:59 +01:00
YNH Webdev
d3c66cd7fe Allow remove 2014-01-02 03:20:57 +01:00
YNH Webdev
7bf95cd927 Add serverside file id to file structure 2014-01-01 23:50:12 +01:00
YNH Webdev
05d4f24f6f Allow detached values 2014-01-01 23:48:56 +01:00
YNH Webdev
d9c837918b Demo upload 2014-01-01 20:41:28 +01:00
severin
5adee83350 Merge branch 'widget' of github.com:ynh/EWF into widget 2014-01-01 14:44:30 +01:00
severin
720e26d19d Small page control change 2014-01-01 14:44:22 +01:00
YNH Webdev
29356c0b61 Workin file upload 2014-01-01 01:35:43 +01:00
YNH Webdev
b39dd5c40d Change parameter type 2013-12-31 21:25:01 +01:00
YNH Webdev
1ae44e74e7 File upload implementation part1 2013-12-31 16:03:24 +01:00
YNH Webdev
7a5d1e378d Fix dropdown list, clean up actions 2013-12-31 12:10:05 +01:00
c68f6a30e6 Fixed and improved {WSF_REQUEST}.read_input_data_into_file.
Now use the content length to get exactly what is expected from the request.
Added check assertion
2013-12-03 10:46:22 +01:00
07ec0d001f 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-03 10:45:52 +01:00
4f15745647 For Nino connector, ensured that environment variables are percent-encoded in meta variables. 2013-12-02 10:26:23 +01:00
20367851cc fixed compilation of libfcgi tests. 2013-11-20 09:17:41 +01:00
2978ec33b7 Accept again detachable argument for HTTP_AUTHORIZATION.make (..) to avoid breaking existing code.
Note that HTTP_AUTHORIZATION.http_authorization is now detachable.
2013-11-20 09:17:28 +01:00
3d126b04a9 fixed compilation of the filter example 2013-11-20 09:16:28 +01:00
33fd3c8009 The "not implemented" response, now also precise the request method. 2013-11-19 22:08:06 +01:00
ea1c8a23cd http_client: changed some default settings connect_timeout' and timeout' to 0 (never timeout)
Updated comments
2013-11-19 22:07:29 +01:00
1827723ccc Fixed compilation of restbucksCRUD for the policy driven framework target. 2013-11-19 22:00:33 +01:00
Jocelyn Fiat
949d3514b8 Merge branch 'master' of https://github.com/Eiffel-World/EiffelWebNino 2013-11-18 17:41:19 +00:00
Jocelyn Fiat
7818b9dc1c removed CRLF eol in many files 2013-11-18 17:40:32 +00:00
Jocelyn Fiat
d15da0ffd4 merged wiki page changes 2013-11-18 17:34:03 +00:00
Jocelyn Fiat
a0665313ed Merge branch 'master' of https://github.com/eiffelhub/json 2013-11-18 17:30:37 +00:00
Jocelyn Fiat
8a7bd30ce0 native eol 2013-11-18 17:28:37 +00:00
f2da98c387 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-12 21:37:39 +01:00
YNH Webdev
51c4e8ab9e Rename files 2013-11-11 08:28:08 +01:00
YNH Webdev
f369b26d88 Rename validators, Make forms resizable 2013-11-10 17:22:28 +01:00
YNH Webdev
40bb88a55f Validate all fields and make regexp stricter 2013-11-10 16:53:21 +01:00
YNH Webdev
72e7493842 Fix event handler 2013-11-10 16:39:04 +01:00
YNH Webdev
6213021f45 Fix form element control 2013-11-10 15:10:00 +01:00
YNH Webdev
eb3fb7e5f7 Update sample app 2013-11-10 13:58:44 +01:00
YNH Webdev
1ec14ec397 Fix email validation and min and max validator 2013-11-10 13:53:20 +01:00
YNH Webdev
38f422896d Fix slider 2013-11-09 17:14:58 +01:00
YNH Webdev
3895cf4399 Fix assert path 2013-11-09 14:42:17 +01:00
YNH Webdev
7e69fddac9 Fix rendering issue. Add active class 2013-11-08 23:03:30 +01:00
e6f1a06545 Fixed issue with unicode login:password
Added EIS info
Added testing cases.
2013-11-08 18:14:40 +01:00
e20dd076c3 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 16:16:45 +01:00
jvelilla
a2cc3d8b29 Added DEBUG_OUTPUT to JSON_OBJECT 2013-11-08 10:38:44 -03:00
jvelilla
fa4cbd8fa8 Updated readme file 2013-11-08 09:57:27 -03:00
jvelilla
884b6b1339 Merge branch 'master' of https://github.com/eiffelhub/json 2013-11-08 09:55:21 -03:00
jvelilla
9576779cce Merge pull request #7 from ynh/simplify_json_object
Simplify the json object by adding type specific put and replace
2013-11-08 04:54:59 -08:00
YNH Webdev
0721384b60 Adjust layout control and fix navlist 2013-11-08 09:27:56 +01:00
YNH Webdev
0d79799a5d Fix autocomplete 2013-11-08 00:09:09 +01:00
YNH Webdev
86339d8163 Redesign states and implement generated control_name 2013-11-08 00:03:02 +01:00
jvelilla
64bde6220c Merge branch 'master' of https://github.com/eiffelhub/json 2013-11-07 19:19:50 -03:00
jvelilla
3406780f65 Updated comments, add DEBUG_OUPUT to JSON_ARRAY. 2013-11-07 19:18:20 -03:00
Jocelyn Fiat
597e0e82b9 cosmetic and indexing note description 2013-11-07 23:14:50 +01:00
jvelilla
137af843af Fixed normalized line endings 2013-11-07 18:14:59 -03:00
jvelilla
8a96ed87b1 Normalize line endings 2013-11-07 17:55:15 -03:00
jvelilla
59b0d0d9fa Added gitattribute configuration file 2013-11-07 17:38:02 -03:00
YNH Webdev
c9102af0aa Add stateless widgets 2013-11-06 15:44:31 +01:00
severin
6838089570 Fix Layout Control 2013-11-05 16:14:15 +01:00
severin
aba60a473a Added navlist widget 2013-11-05 16:05:24 +01:00
YNH Webdev
9a392ba292 Fix project 2013-11-05 15:50:28 +01:00
severin
85369d5247 Added WSF_LAYOUT_CONTROL 2013-11-05 15:39:42 +01:00
YNH Webdev
7c11de3073 Fix navbar state problem 2013-11-04 00:22:42 +01:00
YNH Webdev
4d07a6330d Add item alias 2013-11-03 12:51:35 +01:00
severin
dad4191c40 Fixed js 2013-11-02 23:02:07 +01:00
severin
b70450cfe9 Added dropdown control 2013-11-02 22:36:21 +01:00
severin
10b950a7e7 Fixed creation procedures (make) 2013-11-02 18:34:48 +01:00
YNH Webdev
1b831375ef Fix image sizes 2013-10-30 13:35:53 +01:00
YNH Webdev
a979bf24d4 Fix slider code 2013-10-30 13:14:48 +01:00
severin
4b11bbb73d Slider fix 2013-10-30 13:02:49 +01:00
YNH Webdev
f1cefd6173 Fix path 2013-10-29 23:14:45 +01:00
severin
ac31e1c29e Merge branch 'widget_slider' into widget
Conflicts:
	draft/library/wsf_js_widget/kernel/webcontrol/wsf_control.e
	examples/widgetapp/base_page.e
2013-10-29 15:39:32 +01:00
severin
61f032a819 Fixed WSF_MULTI_CONTROL (wrong order of subcontrols), completed navbar, improved slider 2013-10-29 15:32:57 +01:00
026f8ae608 Fixed WSF_FILE_SYSTEM_HANDLER.process_index (..) 2013-10-25 16:09:43 +02:00
ab07c2e0ce Added content_negotiation to official EWF release. 2013-10-25 16:08:16 +02:00
637303930a Removed trimmed_string function and callers, and for now, use (left_|right_)adjust 2013-10-24 17:33:27 +02:00
Jocelyn Fiat
78ee9872bd Merge pull request #83 from jvelilla/master
Contracts, comments and cosmetic
2013-10-23 03:48:26 -07:00
4dd1731e60 Removed trimmed_string function and callers, and for now, use (left_|right_)adjust 2013-10-23 12:46:36 +02:00
jvelilla
2c2770b4f1 Reuse trimmed_string from HTTP_HEADER_UTILITIES.
Added description to FITNESS_AND_QUALITY.
2013-10-22 08:35:03 -03:00
jvelilla
8c04a9183f Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-10-21 08:50:17 -03:00
Jocelyn Fiat
373e13208f Updated Tasks Roadmap (markdown) 2013-10-21 02:52:38 -07:00
Jocelyn Fiat
250d41c2d7 Updated roadmap (markdown) 2013-10-21 02:51:50 -07:00
Jocelyn Fiat
9329ea946e Created roadmap (markdown) 2013-10-21 02:51:37 -07:00
ddd19023b0 Merge branch 'content_nego_review'
Conflicts:
	library/network/protocol/content_negotiation/src/conneg_server_side.e
	library/network/protocol/content_negotiation/src/parsers/common_accept_header_parser.e
	library/network/protocol/content_negotiation/test/conneg_server_side_test.e
2013-10-18 21:30:10 +02:00
9b329c8b8a Merge branch 'master' of github.com:EiffelWebFramework/EWF 2013-10-18 21:05:26 +02:00
6f48cf80f2 Added content_negotiation in "wsf" library 2013-10-18 21:04:00 +02:00
464cbcae80 Minor changes in wsf test cases. 2013-10-18 21:02:55 +02:00
8c57856232 Reintroduced WSF_SERVICE.to_wgi_service: WGI_SERVICE
since it was used in the "WSF" test cases.
2013-10-18 21:02:05 +02:00
4f490aaacc Fixed issue related to {WSF_WGI_DELAYED_HEADER_RESPONSE} and filter response like the logger response wrapper.
issue#82
2013-10-18 21:01:23 +02:00
3065637c80 Fixed an issue with one short chunk and empty trailer
issue#81
2013-10-18 20:59:29 +02:00
cf01756c1c Using the new Content Negotiation library to implement WSF_REQUEST.is_content_type_accepted 2013-10-18 20:46:08 +02:00
58dc2ec792 Updated README.md for conneg 2013-10-18 20:44:36 +02:00
88e6837222 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-18 16:18:22 +02:00
d376f99832 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-15 23:19:12 +02:00
3072ce7dec 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-10-14 18:54:36 +02:00
jvelilla
82fdd53adb revert previous change 2013-10-04 12:53:31 -03:00
jvelilla
b97073b14a Assertions turn on. 2013-10-04 12:32:37 -03:00
jvelilla
9a10e6f2a3 Merge pull request #80 from jvelilla/master
Fixed issue# 79 Bug in CONNEG_SERVER_SIDE
2013-10-04 06:29:25 -07:00
jvelilla
60d77892e5 Fixed issue# 79 Bug in CONNEG_SERVER_SIDE 2013-10-04 10:24:19 -03:00
Jocelyn Fiat
9e11931b44 Merge pull request #78 from colin-adams/errors
When custom error is created in check_resource_exists, use it
2013-10-02 13:21:44 -07:00
Colin Adams
8fe7f4db82 When custom error is created in check_resource_exists, use it 2013-10-01 08:40:16 +01:00
Severin
26e6a62e6b Test 2013-09-29 02:24:33 +02:00
Olivier Ligot
d26c68cd1e Start to write documentation about connectors 2013-09-28 16:40:02 +02:00
YNH Webdev
01327a4b06 Add codeview 2013-09-28 16:24:51 +02:00
YNH Webdev
d3299f8e06 Fix news datasource 2013-09-28 09:49:53 +02:00
YNH Webdev
1100328fee Fix load state error 2013-09-28 09:44:39 +02:00
YNH Webdev
cb1a4825d2 Implement lazy js load wraper 2013-09-28 00:45:27 +02:00
YNH Webdev
aa9f4c4ed8 Load needed libraries dynamically 2013-09-28 00:30:29 +02:00
Severin Münger
c6d59d3366 Fixed slider 2013-09-27 18:13:55 +02:00
YNH Webdev
8353f34c45 Adjust widgetapp 2013-09-27 11:02:10 +02:00
YNH Webdev
b6c082e1fe Create new JSON_OBJECT 2013-09-27 10:57:40 +02:00
YNH Webdev
48251fb872 Add boolean 2013-09-27 10:25:36 +02:00
jvelilla
f14728c1a7 Merge pull request #76 from jvelilla/master
Fixed Issue #75 CONNEG doesn't handle accept encodings correcty
2013-09-25 12:20:04 -07:00
jvelilla
295e6e9198 Added more scenarios to test accept encoding with identity. 2013-09-25 16:15:27 -03:00
jvelilla
e21af4a0e8 Fixed Issue #75 CONNEG doesn't handle accept encodings correcty 2013-09-25 15:22:57 -03:00
YNH Webdev
805ac5dacf Remove remaining detachable variables 2013-09-25 12:52:17 +02:00
YNH Webdev
93f8cd789f Make types attached 2013-09-25 12:50:17 +02:00
YNH Webdev
7b0d264aab Fix formating 2013-09-25 10:08:10 +02:00
YNH Webdev
4d0dc964da Rename procedures. Change input type of replace_with_string and
put_string
2013-09-25 10:03:38 +02:00
YNH Webdev
95fd5f93fc Simplify the json object by adding type specific put and replace 2013-09-24 21:50:36 +02:00
0f7dca0701 Removed unwanted call to RT_DEBUGGER in WSF_DEBUG_HANDLER.
This line was committed by error.
2013-09-24 17:19:29 +02:00
843955b7b8 Reused string constants from HTTP_HEADER_NAMES 2013-09-24 15:27:02 +02:00
88192335b6 Added implicit conversion from agent to WSF_URI_TEMPLATE_AGENT_HANDLER
Mainly for convenience.
2013-09-24 15:26:16 +02:00
b04159fb35 Use WSF_RESPONSE.put_header_lines (header_object) when possible, instead of put_header_text (header_object.string) 2013-09-24 15:24:34 +02:00
1d0eb14918 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 15:23:15 +02:00
YNH Webdev
113df6efe1 Merge branch 'widget' of github.com:souvarin/EWF into widget 2013-09-24 15:20:43 +02:00
Jocelyn Fiat
e7951338c9 Merge pull request #74 from jvelilla/master
Added description to results classes.
Removed unnecessary classes
Clean code: removed feature out, updated corresponding test cases.
2013-09-24 06:18:20 -07:00
Severin Münger
83329ca4b7 Moved to draft 2013-09-24 15:18:14 +02:00
Severin Münger
f51201eae1 Removed WSF_STATELESS_MULTI_CONTROL 2013-09-24 15:02:33 +02:00
Severin Münger
c52a513378 Changed slider 2013-09-24 14:38:01 +02:00
Severin Münger
6908bfe7bf Added slider demo 2013-09-24 02:38:36 +02:00
Severin Münger
a5fa428e98 Added simple image slider widget 2013-09-24 01:28:29 +02:00
YNH Webdev
24f760c043 Add table title 2013-09-24 00:22:56 +02:00
YNH Webdev
3f089d6811 Implement remove 2013-09-24 00:18:38 +02:00
YNH Webdev
7e673b4628 Stop interval if deleted 2013-09-23 00:40:40 +02:00
YNH Webdev
ca633d3524 Introduce actions
First working modal
2013-09-23 00:15:43 +02:00
YNH Webdev
7dd726ca42 Set url within page class 2013-09-22 22:47:29 +02:00
YNH Webdev
3f6caa76dc Fix confict 2013-09-22 19:14:19 +02:00
YNH Webdev
5a18cb4246 Merge branch 'widget' of github.com:souvarin/EWF into widget_state_redesign
Conflicts:
	examples/widgetapp/base_page.e
2013-09-22 19:11:46 +02:00
YNH Webdev
b33de9985f Implement control isolation 2013-09-22 19:11:07 +02:00
YNH Webdev
3a9ede6e8c Restructure callbacks 2013-09-22 18:30:48 +02:00
Severin Münger
87569ccee9 Merge branch 'widget' of github.com:ynh/EWF into widget 2013-09-22 18:20:53 +02:00
Severin Münger
16b79ef193 Improved Navbar, changed attribute handling 2013-09-22 18:20:17 +02:00
YNH Webdev
f360e8a867 Add comments to grid controls 2013-09-22 14:35:26 +02:00
Severin Münger
57dd4ce259 Added comments to autocompletion, input, navbar, progressbar, validator, webcontrol. Some more little changes. 2013-09-21 23:01:36 +02:00
YNH Webdev
252b5ff758 Use append 2013-09-20 20:53:51 +02:00
YNH Webdev
b19598d902 Fix tuple 2013-09-20 20:51:19 +02:00
YNH Webdev
b5ef1fbbb5 Make recommended changes
- Implicit casting
- Use same_string
2013-09-20 20:49:03 +02:00
jvelilla
bc864bde39 Added description to results classes.
Removed unnecessary class
Clean code: removed feature out, updated corresponding test cases.
2013-09-20 15:34:00 -03:00
YNH Webdev
0a2883e040 Rename clusters to singular names 2013-09-20 19:22:46 +02:00
YNH Webdev
24474e6b31 Move project to wsf_js_widget 2013-09-20 19:19:34 +02:00
dd31970b01 Renamed content_negotation' as content_negotiation' (fixed typo)
Updated .ecf and Eiffel code depending on previous CONNEG
2013-09-20 15:18:56 +02:00
f31ed103d0 Integrated changes on content negociation library 2013-09-20 15:04:50 +02:00
ynh
6c0eeebf27 Merge pull request #2 from jocelyn/widget_first_review
Minor changes
2013-09-20 03:34:36 -07:00
48f5cb78d5 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-20 10:27:00 +02:00
jvelilla
20a768749f Forgot to add class description 2013-09-19 15:16:26 -03:00
jvelilla
2d964b1137 Removed http classes related to http expectations.
Updated code based on the code review.
Still work in progress
2013-09-19 13:44:03 -03:00
jvelilla
a1245b77fd New directory structure (variants, results, parsers)
Refactor STRING to READABLE_STRING_8.
Clean code, added documentation and EIS references.
2013-09-17 10:09:46 -03:00
jvelilla
f2ee91764d Renamed CONNEG to content_negotiation.
Update MIME_PARSER to use HTTP_MEDIA_TYPE.
2013-09-16 23:56:01 -03:00
fff08a29e7 Accepts "*" as valid media type (interpreted as */* to be flexible) 2013-09-16 22:33:18 +02:00
jvelilla
a6260ed5a2 Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-09-16 13:08:09 -03:00
2f3a462c42 Fixed type having a semicolon in a parameter value such as
"text/plain; param1=%"something;foo=bar%"; param2=%"another-thing%"
2013-09-16 18:04:43 +02:00
jvelilla
37e6d74a34 Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-09-16 11:26:18 -03:00
f8a0bbf88b Added autotests to http library in relation with mime type and content type.
Fixed an issue with more than one parameter.
2013-09-16 16:24:05 +02:00
jvelilla
cbd7dc8176 Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-09-16 09:16:38 -03:00
YNH Webdev
1da678f726 Slow down fetching 2013-09-16 00:01:31 +02:00
Severin Münger
fccb6776b0 Fixed progressbar 2013-09-15 23:47:04 +02:00
Severin Münger
f2e85aca42 Merge branch 'widget' of github.com:ynh/EWF into widget 2013-09-15 22:14:07 +02:00
Severin Münger
2fbffb8c9e Added progress callback 2013-09-15 22:13:51 +02:00
YNH Webdev
dd8bddd45c Make js files local 2013-09-15 18:33:39 +02:00
YNH Webdev
358fe04699 Add all countries to flag list
Set encoding (Must be changed to UTF-8 in future)
2013-09-15 17:32:23 +02:00
YNH Webdev
647beea245 Rearrange demo
Add contact autocompletion
2013-09-15 15:25:13 +02:00
YNH Webdev
251974fd2f Create basepage 2013-09-15 14:16:18 +02:00
YNH Webdev
81952e7898 Merge branch 'widget_grid' into widget
Conflicts:
	examples/widgetapp/widget.coffee
	examples/widgetapp/widget.js
2013-09-15 14:04:45 +02:00
YNH Webdev
1ba9792547 Fix suggestions 2013-09-15 13:33:43 +02:00
Severin Münger
45e3a6d7cc Small changes 2013-09-15 13:25:01 +02:00
Severin Münger
be05edac7d Added Progress Control 2013-09-15 01:57:03 +02:00
Severin Münger
6761d22fa8 Added Progress Control 2013-09-15 01:55:17 +02:00
Severin Münger
9db93cf4c9 Included navbar example 2013-09-15 00:44:20 +02:00
YNH Webdev
15dd993b95 Fix change event 2013-09-14 22:45:58 +02:00
YNH Webdev
0f8444a585 Remove column from grid 2013-09-14 20:39:07 +02:00
YNH Webdev
6230d643c8 Style demo pages 2013-09-14 19:39:08 +02:00
YNH Webdev
cfe452543a Implement repeater 2013-09-14 18:41:49 +02:00
YNH Webdev
26ec7d94c6 Google news example 2013-09-14 17:46:57 +02:00
YNH Webdev
95f823e7a1 - Add event paramenter
- Implement Paging control
2013-09-14 14:27:11 +02:00
Severin Münger
09544ba6d2 Fixed rendering, added navbar 2013-09-13 23:24:49 +02:00
YNH Webdev
15676a7c9e Fix path in project 2013-09-13 19:42:24 +02:00
b5bdf88bf4 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2013-09-13 14:50:29 +02:00
74e96d7816 Added PATCH support in http_client, and provided custom_with_upload_data and custom_with_upload_file. 2013-09-13 14:50:07 +02:00
527e877b30 forget about older version of Eiffel cURL 2013-09-13 14:49:09 +02:00
Severin Münger
efc1550ab9 Merge branch 'widget' of github.com:ynh/EWF into widget
Conflicts:
	library/server/wsf_html/webcontrol/wsf_control.e
2013-09-13 01:12:26 +02:00
Severin Münger
f53974b138 Small changes/fixes 2013-09-13 01:08:18 +02:00
YNH Webdev
6860860161 Fix render function 2013-09-13 01:05:35 +02:00
Severin Münger
9c65194d91 Small fix removed DOCTYPE 2013-09-13 00:41:31 +02:00
Severin Münger
b1cf630443 New Control structure 2013-09-13 00:28:37 +02:00
YNH Webdev
b3e383ea82 Merge branch 'widget' of github.com:souvarin/EWF into widget
Conflicts:
	library/server/wsf_html/wsf_html-safe.ecf
2013-09-13 00:21:58 +02:00
YNH Webdev
36368aff0b Add Grid Widget 2013-09-13 00:20:27 +02:00
Severin Münger
162735b328 Extended autocompletion with customized templates 2013-09-12 17:15:05 +02:00
Severin Münger
27023283e7 Autocompletion 2013-09-12 14:58:35 +02:00
Severin Münger
8fc405fef1 Changed structure 2013-09-12 11:38:31 +02:00
oligot
44d8903a10 Created Filter (markdown) 2013-09-12 02:18:05 -07:00
Olivier Ligot
113c52f6b0 README.md: Remove dot in the community section 2013-09-12 10:27:45 +02:00
Olivier Ligot
e29a4c8c8a Added Community section to the README.md file 2013-09-12 10:25:17 +02:00
9499601daf Fixing handling of query parameter without value
Issue#70 https://github.com/EiffelWebFramework/EWF/issues/70
2013-09-09 15:51:20 +02:00
jvelilla
0887f7d22f Moved Selenium web driver to WebDriver-Eiffel repository 2013-09-08 11:44:46 -03:00
jvelilla
327ecff63a Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-09-06 21:57:43 -03:00
Severin Münger
55e91bff7f Merge branch 'widget' of github.com:ynh/EWF into widget 2013-09-06 23:34:50 +02:00
YNH Webdev
8b179fd98d Min/Max validator 2013-09-06 21:47:02 +02:00
Severin Münger
e5841f2dad Merge branch 'widget' of github.com:ynh/EWF into widget
Conflicts:
	examples/widgetapp/sample_page.e
2013-09-06 20:40:43 +02:00
Severin Münger
d45405f261 Some small changes 2013-09-06 20:36:04 +02:00
YNH Webdev
133ed9a0be Show server side error in validation box 2013-09-06 18:52:59 +02:00
YNH Webdev
33220b2b8e Add HTML control 2013-09-06 18:45:14 +02:00
YNH Webdev
f542975872 Small render fix 2013-09-06 18:13:23 +02:00
ed9fac0545 fixed compilation of wsf_extension 2013-09-06 18:13:05 +02:00
YNH Webdev
4dd4678b65 Comment js code 2013-09-06 18:09:39 +02:00
YNH Webdev
bbd48d24e4 Implement serverside and client side validatation 2013-09-06 18:06:43 +02:00
3b66d77ddc Merge branch 'master' of github.com:EiffelWebFramework/EWF 2013-09-06 15:40:23 +02:00
fc5ef995bc 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
2013-09-06 15:39:04 +02:00
4c5fa0ed61 added policy driven license .lic files 2013-09-06 15:35:09 +02:00
ea9161b2f2 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.
2013-09-06 15:34:38 +02:00
3c139315e5 removed useless (and unused) function {WSF_SERVICE}.to_wgi_service: WGI_SERVICE 2013-09-06 15:32:05 +02:00
15a96a402d Fixed bad output 2013-09-06 15:31:26 +02:00
5959099c55 Used res.put_header_lines (h) rather than res.put_header_text (h.string) 2013-09-06 15:31:11 +02:00
YNH Webdev
9f40c6355c First working checkbox list 2013-09-06 14:22:23 +02:00
YNH Webdev
0fcb80aa29 Merge branch 'widget' of github.com:souvarin/EWF into widget 2013-09-06 12:29:14 +02:00
Severin Münger
59a12dcac1 Added checkbox list, modified form validation 2013-09-06 01:20:41 +02:00
YNH Webdev
eb47c101ca Merge branch 'widget' of github.com:souvarin/EWF into widget 2013-09-05 23:37:19 +02:00
Severin Münger
c67a7f4982 Added validators for decimals and mails 2013-09-05 22:57:56 +02:00
Severin Münger
aba394502c Added Regexp validation (later used for mail, numbers...) 2013-09-05 22:09:08 +02:00
YNH Webdev
0c265f4f78 Fix form and textarea bug 2013-09-05 17:43:46 +02:00
YNH Webdev
32518cfb41 Merge branch 'widget' of github.com:souvarin/EWF into widget
Conflicts:
	library/server/wsf_html/webcontrol/wsf_control.e
2013-09-05 17:20:40 +02:00
YNH Webdev
225f821206 Test the new controls 2013-09-05 17:18:46 +02:00
Severin Münger
f506d9e925 Implemented WSF_CHECKBOX_CONTROL, added id attribute to rendering of WSF_CONTROL 2013-09-05 17:16:56 +02:00
YNH Webdev
edce18fb1f Merge branch 'widget' of github.com:ynh/EWF into widget 2013-09-05 16:53:29 +02:00
YNH Webdev
ad15ab13c5 Fix render function 2013-09-05 16:53:05 +02:00
Severin Münger
f52f6512a0 Restructured validators, fixed form element rendering 2013-09-05 16:51:51 +02:00
YNH Webdev
7bdafbd21e Fix render function 2013-09-05 16:51:37 +02:00
YNH Webdev
6486c8c472 Merge branch 'widget' of github.com:souvarin/EWF into widget 2013-09-05 16:28:21 +02:00
YNH Webdev
fb345c5f0c Add bootstrap 2013-09-05 16:27:55 +02:00
Severin Münger
deaeaa434d Implemented WSF_FORM_ELEMENT_CONTROL 2013-09-05 16:25:44 +02:00
Severin Münger
f9cc0afb9e Merge branch 'widget' of github.com:ynh/EWF into widget
Conflicts:
	library/server/wsf_html/webcontrol/wsf_control.e
	library/server/wsf_html/webcontrol/wsf_text_control.e
2013-09-05 15:40:11 +02:00
Severin Münger
ee0400463f Began with implementation of form handling 2013-09-05 15:37:59 +02:00
YNH Webdev
fa35c22d2d Use render tag 2013-09-05 15:33:56 +02:00
Severin Münger
422b73058c Adapted rendering of multi control 2013-09-05 15:12:22 +02:00
Severin Münger
c50a46206d Merge branch 'widget' of github.com:ynh/EWF into widget 2013-09-05 15:08:24 +02:00
Severin Münger
f866c067cb Changed creation procedures 2013-09-05 15:08:02 +02:00
YNH Webdev
811d087d74 Generate tag 2013-09-05 14:55:52 +02:00
YNH Webdev
633243311d Change wsf control 2013-09-05 14:48:19 +02:00
oligot
f5d5381fae Updated Router (markdown) 2013-09-04 05:04:21 -07:00
oligot
bbc3249212 Updated Router (markdown) 2013-09-04 05:01:42 -07:00
oligot
625b8803df Updated Request and response (markdown) 2013-09-04 04:59:59 -07:00
oligot
0d8090b6f4 Updated Request and response (markdown) 2013-09-04 04:59:14 -07:00
oligot
718c0af085 Updated Request and response (markdown) 2013-09-04 04:59:04 -07:00
oligot
5a94264dc0 Created Router (markdown) 2013-09-04 04:55:14 -07:00
oligot
8269f3ea5b Updated Connectors (markdown) 2013-09-04 04:54:04 -07:00
oligot
d6333362a7 Created Request and response (markdown) 2013-09-04 04:53:30 -07:00
oligot
3e43fd52ae Created Connectors (markdown) 2013-09-04 04:52:22 -07:00
Olivier Ligot
1111333223 Contribute page 2013-09-04 13:38:44 +02:00
Severin Münger
ae9952a941 Added class for TextArea 2013-09-03 03:54:33 +02:00
Severin Münger
3b2ad80dc3 Added TextArea 2013-09-03 03:53:01 +02:00
Severin Münger
1c08439c1a forgot to add new files 2013-09-02 20:25:59 +02:00
Severin Münger
16c89180d2 Added generalized input control similiar to text 2013-09-02 03:44:30 +02:00
YNH Webdev
bc6b4f90c3 Only send changes back to client 2013-08-29 18:31:57 +02:00
YNH Webdev
275cc7aa21 Add comments
Use Precursor
2013-08-28 22:59:24 +02:00
YNH Webdev
e186475a81 Clean up code
Simplify event
2013-08-28 19:43:44 +02:00
YNH Webdev
595d0c501a Only callback if there is an event attached 2013-08-28 15:57:16 +02:00
YNH Webdev
4e09a15454 Remove ugly do nothing hack 2013-08-28 15:30:13 +02:00
YNH Webdev
b7ab840d71 Communication in both directions (Text control)
Code regrouping
2013-08-28 12:52:09 +02:00
YNH Webdev
b72e6871e8 Fix multi control
Use multi control in example
2013-08-28 11:04:54 +02:00
YNH Webdev
f14ea29636 Comment and reformat coffee script file 2013-08-28 00:34:25 +02:00
YNH Webdev
cb7f1f0ee3 First working callback 2013-08-28 00:04:42 +02:00
Severin Münger
ef34217a6d Added WSF_MULTI_CONTROL to support controls that consist of multiple separate controls. 2013-08-27 22:06:08 +02:00
Severin Münger
ab7ee8e4c3 Created first working sample page application. 2013-08-27 16:48:20 +02:00
YNH Webdev
1a1df35ff1 Remove content length 2013-08-27 16:45:50 +02:00
YNH Webdev
0c0fb5c9c8 Add html body 2013-08-27 16:44:58 +02:00
YNH Webdev
c29a6ad195 Add assigner 2013-08-27 16:33:54 +02:00
YNH Webdev
6fdffb7418 Add post condition 2013-08-27 16:18:51 +02:00
YNH Webdev
8db642cf3b Move initalize controls 2013-08-27 16:07:06 +02:00
YNH Webdev
850a05d6bb Pretty Print 2013-08-27 16:00:24 +02:00
YNH Webdev
74995101d1 Add a json state to each control 2013-08-27 15:58:56 +02:00
YNH Webdev
fa5d13e19d Fix path 2013-08-27 15:01:57 +02:00
YNH Webdev
9f7e72f0a4 Page structure 2013-08-27 14:47:43 +02:00
YNH Webdev
c224bf1bb1 Test 2013-08-27 13:53:34 +02:00
Severin Münger
b5b71a3db0 Created widget-project testapp project. 2013-08-27 13:48:44 +02:00
oligot
cc1abfd1f9 Updated Web meeting 2012 09 18 (markdown) 2013-08-23 06:39:41 -07:00
oligot
771c91227e Updated Useful links (markdown) 2013-08-23 06:38:37 -07:00
oligot
1276ea0d1b Updated Tasks Roadmap (markdown) 2013-08-23 06:37:46 -07:00
oligot
611ce6eb9c Updated Projects new suggestions (markdown) 2013-08-23 06:31:09 -07:00
oligot
2870df8478 Updated Projects new suggestions (markdown) 2013-08-23 06:30:45 -07:00
oligot
59b2163a62 Updated Projects (markdown) 2013-08-23 06:29:39 -07:00
oligot
065318749b Updated Projects (markdown) 2013-08-23 06:28:49 -07:00
oligot
600ee095cc Updated Projects (markdown) 2013-08-23 06:27:03 -07:00
oligot
ecb49619da Updated Projects (markdown) 2013-08-23 06:25:31 -07:00
oligot
b73939d0a0 Updated Meetings (markdown) 2013-08-23 06:21:00 -07:00
oligot
6c83639149 Updated Home (markdown) 2013-08-23 06:16:24 -07:00
oligot
e77ee9bdf3 Updated Home (markdown) 2013-08-23 06:15:49 -07:00
oligot
9449f0d16e Updated Home (markdown) 2013-08-23 06:12:00 -07:00
oligot
4ff29e1fb3 Updated Home (markdown) 2013-08-23 06:11:23 -07:00
oligot
4de85df5b6 Updated EWSGI specification (markdown) 2013-08-23 06:07:26 -07:00
oligot
294ccb04d3 Updated EWSGI specification (markdown) 2013-08-23 06:06:49 -07:00
oligot
4f0567ad88 Updated EWSGI (markdown) 2013-08-23 06:05:10 -07:00
oligot
65c613d0a4 Links 2013-08-23 06:01:52 -07:00
oligot
a16bca2f29 Links 2013-08-23 05:48:02 -07:00
517720c99c Updated copyright for policy-driven classes, which is a contribution from Colin Adams. 2013-08-21 14:00:34 +02:00
jvelilla
86e942ae0a Merge branch 'master' of https://github.com/jocelyn/EWF 2013-08-21 08:33:53 -03:00
9938cc941d Merge branch 'master' of https://github.com/EiffelWebFramework/EWF.wiki 2013-08-21 09:58:59 +02:00
2651171294 Extracted the policy driven classes into their own library for now "wsf_policy_driven.ecf"
Updated the restbucksCRUD example to demonstrate both approaches.
2013-08-20 17:27:57 +02:00
07f71dfc4e Moved recent policy-driven classes into "policy" sub folder 2013-08-20 13:26:55 +02:00
51730e0877 Merge branch 'handler' of github.com:colin-adams/EWF into colin-adams-handler 2013-08-20 13:17:01 +02:00
9958bb27a1 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-20 13:15:37 +02:00
Colin Adams
37b94bbf0d Added header comment about redefining for extension methods 2013-08-19 11:48:49 +01:00
Colin Adams
3ae898476f Changed age to max_age 2013-08-16 04:50:48 +01:00
Colin Adams
eefe547553 Changed comment on execute to check assertion 2013-08-15 14:58:58 +01:00
Colin Adams
2903a1d3cd Improved comment to ensure_content_exists - take 2 2013-08-15 10:31:40 +01:00
Colin Adams
0755e2d2bc Improved comment to ensure_content_exists 2013-08-15 10:30:47 +01:00
Colin Adams
b5957d0f59 Removed empty feature clause 2013-08-15 08:57:54 +01:00
Colin Adams
143608fd85 Fixed recursion on router bug 2013-08-14 11:32:27 +01:00
colin-adams
b2d9fe1a4b Updated Writing the handlers (markdown) 2013-08-14 02:47:12 -07:00
colin-adams
aff7948c65 Updated Writing the handlers (markdown) 2013-08-14 02:23:53 -07:00
colin-adams
bcdfcdd468 Updated Writing the handlers (markdown) 2013-08-14 02:23:07 -07:00
colin-adams
5e62d82e9c Updated Wsf previous policy (markdown) 2013-08-14 02:22:22 -07:00
Colin Adams
275c26b55b Further use of constants for execution variables 2013-08-14 09:22:35 +01:00
colin-adams
123fc8252e Updated Writing the handlers (markdown) 2013-08-13 08:24:05 -07:00
Colin Adams
c93e50a7e2 Gave symbolic names to execution variables used by the framework 2013-08-13 15:47:59 +01:00
colin-adams
9c8bc59224 Updated Writing the handlers (markdown) 2013-08-13 00:54:45 -07:00
Colin Adams
b074570e99 Added some checks for custom erros being set. 2013-08-12 16:45:47 +01:00
colin-adams
bf5bae803d Updated Writing the handlers (markdown) 2013-08-12 01:49:11 -07:00
colin-adams
35224b1b17 Updated Writing the handlers (markdown) 2013-08-12 01:45:58 -07:00
Colin Adams
2ed362f5d3 refactored to allow etags to work properly when multiple representations are available 2013-08-12 09:27:00 +01:00
colin-adams
fe971d07ec Updated Using the policy driven framework (markdown) 2013-08-11 23:55:50 -07:00
Colin Adams
f82456f352 Found another TODO - write_error_response in GET processing 2013-08-08 17:13:38 +01:00
colin-adams
bbbf958d7d Updated Using the policy driven framework (markdown) 2013-08-08 02:41:27 -07:00
Colin Adams
4c901c3130 Implemented remaining error response calls 2013-08-08 10:39:46 +01:00
Colin Adams
eade6d584c Errors corrected that were discovered in the course of writing the tutorial 2013-08-08 09:33:21 +01:00
colin-adams
9c8a034a04 Updated Writing the handlers (markdown) 2013-08-08 01:32:31 -07:00
colin-adams
2dac1ff6c9 Updated Writing the handlers (markdown) 2013-08-08 01:25:29 -07:00
colin-adams
e9013e548b Updated Writing the handlers (markdown) 2013-08-08 00:56:14 -07:00
colin-adams
bc976c37b1 Updated Writing the handlers (markdown) 2013-08-08 00:26:56 -07:00
Colin Adams
3249c377f1 made deleted into an effective routine 2013-08-08 07:31:43 +01:00
colin-adams
2415a57ab0 Updated Writing the handlers (markdown) 2013-08-07 23:30:49 -07:00
colin-adams
7e4f51a7ce Updated Writing the handlers (markdown) 2013-08-07 09:58:42 -07:00
colin-adams
10caa4c1df Updated Writing the handlers (markdown) 2013-08-07 09:48:38 -07:00
colin-adams
a552b8fcfa Updated Writing the handlers (markdown) 2013-08-07 09:13:56 -07:00
colin-adams
9395e31c53 Updated Writing the handlers (markdown) 2013-08-07 08:50:31 -07:00
colin-adams
ce04737d46 Updated Writing the handlers (markdown) 2013-08-07 07:18:35 -07:00
colin-adams
259815467c Created Wsf caching policy (markdown) 2013-08-07 07:05:24 -07:00
colin-adams
3b517d3c53 Updated Writing the handlers (markdown) 2013-08-07 06:25:31 -07:00
colin-adams
c261f02c84 Created Wsf previous policy (markdown) 2013-08-07 06:24:45 -07:00
colin-adams
7815557f84 Updated Writing the handlers (markdown) 2013-08-07 06:14:24 -07:00
colin-adams
090e294f10 Updated WSF_OPTIONS_POLICY (markdown) 2013-08-07 06:06:15 -07:00
colin-adams
33d523e5bf Updated Writing the handlers (markdown) 2013-08-07 06:03:13 -07:00
colin-adams
7bc09bda8f Created WSF_OPTIONS_POLICY (markdown) 2013-08-07 06:02:42 -07:00
colin-adams
45fd51b4b5 Updated Writing the handlers (markdown) 2013-08-07 06:02:24 -07:00
colin-adams
f3849679e8 Updated Writing the handlers (markdown) 2013-08-07 06:00:37 -07:00
colin-adams
bf0a8e8efb Updated Writing the handlers (markdown) 2013-08-07 05:57:49 -07:00
colin-adams
84c3039806 Updated Using the policy driven framework (markdown) 2013-08-07 05:51:54 -07:00
colin-adams
0c4a410ac0 Created Writing the handlers (markdown) 2013-08-07 05:51:11 -07:00
colin-adams
b55f363651 Updated Using the policy driven framework (markdown) 2013-08-07 05:30:02 -07:00
colin-adams
7dd36014cc Updated Using the policy driven framework (markdown) 2013-08-07 03:56:52 -07:00
colin-adams
78ff0134c7 Created Using the policy driven framework (markdown) 2013-08-07 03:27:42 -07:00
Colin Adams
69da6c6d06 Fixes as picked up by code review 2013-08-07 11:03:22 +01:00
Colin Adams
277eb0b4b6 restbucksCRUD example changed to use policy-driven framework 2013-08-06 15:01:24 +01:00
Colin Adams
8dbd24afd1 Policy-driven URI template handlers 2013-08-06 13:57:12 +01:00
Colin Adams
0a9d208529 New routines added to WSF_REQUEST to support ploicy-driven framework 2013-08-06 13:51:43 +01:00
Colin Adams
8ab6dba1c8 New routines added to HTTP_HEADER to support ploicy-driven framework 2013-08-06 13:49:58 +01:00
Colin Adams
e0bfdab106 Add CONNEG to wsf*.ecf to support ploicy-driven framework 2013-08-06 13:47:07 +01:00
jvelilla
fd09b39c1d Merge pull request #6 from jocelyn/patch20130805
Enhanced interface of JSON_ARRAY and JSON_OBJECT and new JSON_ITERATOR
2013-08-05 14:16:28 -07:00
8e743f3253 Enhanced interface of JSON_ARRAY and JSON_OBJECT
Added JSON_ITERATOR
2013-08-05 12:07:07 +02:00
8d9dca1a94 removed building the Clib for Eiffel cUrl, since it is not anymore included in EWF. 2013-08-05 10:21:24 +02:00
5753af3e43 Cosmetic
(removed commented line and fixed bad indentation)
2013-08-05 10:20:41 +02:00
Jocelyn Fiat
63f1976663 Merge pull request #67 from berenddeboer/master
Remove invariant violation.
2013-08-05 01:16:39 -07:00
Berend de Boer
4b87a00637 Remove invariant violation. 2013-08-03 20:09:16 +12:00
Jocelyn Fiat
8d12d1c0bc Merge pull request #66 from oligot/fcgi-osx
FastCGI connector and OS X
2013-07-31 07:45:36 -07:00
Jocelyn Fiat
2c3d5b6f59 Update README.md 2013-07-30 16:06:06 +02:00
Olivier Ligot
e8c66fa769 Fix C compilation when using libfcgi connector on OS X (#65) 2013-07-19 18:51:43 +02:00
jvelilla
09f32e7025 Merge pull request #64 from oligot/all-tests
Tests compile again (fixes #63)
2013-07-11 13:02:45 -07:00
Olivier Ligot
0fca8daeb1 Tests compile again (fixes #63) 2013-07-11 16:46:38 +02:00
jvelilla
285e295b5a Merge branch 'master' of https://github.com/EiffelWebFramework/EWF
Conflicts:
	draft/application/cms/README.md
	draft/application/cms/src/cms_session.e
	draft/src/gewf/license.lic
	library/network/http_client/src/expectation/http_client_response_expectation.e
2013-07-08 18:08:35 -03:00
Colin Adams
e6371c7adc Merge branch 'master' into handler
pull from upstream
2013-07-08 10:17:44 +01:00
Colin Adams
ab7ff11cb6 Merge branch 'master' of github.com:EiffelWebFramework/EWF
Routine merge
2013-07-08 10:17:09 +01:00
Colin Adams
ba11e84ed6 prior to merging 2013-07-08 10:17:04 +01:00
2676b16425 Moved gewf under draft/src/gewf 2013-07-05 15:13:43 +02:00
f7012e5b85 added README for gewf 2013-07-05 15:12:21 +02:00
a149d8de97 licensing and copyright 2013-07-05 15:07:14 +02:00
eea8894724 First working (but limited) tool 2013-07-05 15:06:30 +02:00
5b988ab760 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-05 12:44:09 +02:00
88a38509de Merge branch 'master' of https://github.com/EiffelWebFramework/EWF.wiki 2013-07-04 17:29:25 +02:00
Jocelyn Fiat
6dee9e85b5 Updated Doc_Getting_Started (mediawiki) 2013-07-04 07:28:37 -07:00
Jocelyn Fiat
2d795eb3c1 Updated Doc_Getting_Started (mediawiki) 2013-07-04 07:28:09 -07:00
Jocelyn Fiat
717b0f7ba8 Updated Doc_Getting_Started (mediawiki) 2013-07-04 07:27:51 -07:00
Jocelyn Fiat
2d373cab5b Updated Doc_Getting_Started (mediawiki) 2013-07-04 07:25:44 -07:00
Jocelyn Fiat
e20f45b2c3 Updated Doc_Getting_Started (mediawiki) 2013-07-04 07:08:54 -07:00
Jocelyn Fiat
917388b99e Updated Doc_Index (mediawiki) 2013-07-04 07:07:00 -07:00
Jocelyn Fiat
ed1f899534 Updated Doc_Index (mediawiki) 2013-07-04 07:05:20 -07:00
Jocelyn Fiat
60a80209dc Updated Doc_Index (mediawiki) 2013-07-04 07:04:51 -07:00
Jocelyn Fiat
e4f495b282 Created Doc_Getting_Started (mediawiki) 2013-07-04 07:04:18 -07:00
Jocelyn Fiat
0efcd3cd07 Created Doc_Index (mediawiki) 2013-07-04 07:03:22 -07:00
c216b96707 Moved the cms component to https://github.com/EiffelWebFramework/cms
This is now out of EWF repository.
2013-07-02 12:21:54 +02:00
cb3f983b91 improve file system handler to ignore .* *.swp *~ or using FUNCTION to compute the ignore behavior 2013-06-28 16:11:27 +02:00
dc25723a35 Improved Unicode support. 2013-06-28 11:32:12 +02:00
8040dd5826 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-28 11:06:35 +02:00
jvelilla
42ba1588c6 Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-06-18 10:30:55 -03:00
859a13ae51 Cosmetic, improve readability of conditions 2013-06-18 15:29:07 +02:00
bce084b9db Removed wsf_support, which is useless and unused 2013-06-18 15:28:42 +02:00
23ed157a75 Better use append rather than copy here. 2013-06-18 15:12:53 +02:00
3723469d52 Try to send 500 Internal error when exception reachs this point 2013-06-18 15:09:34 +02:00
jvelilla
d0fda6de66 Merge branch 'master' of https://github.com/EiffelWebFramework/EWF
Conflicts:
	draft/application/cms/cms.ecf
	draft/application/cms/example/src/web_cms.e
	draft/application/cms/src/cms_configuration.e
	draft/application/cms/src/cms_default_setup.e
	draft/application/cms/src/cms_service.e
	draft/application/cms/src/cms_setup.e
	draft/application/cms/src/handler/cms_file_system_handler.e
	draft/application/cms/src/kernel/content/format/filters/cms_html_filter.e
	draft/application/cms/src/modules/debug/debug_module.e
	draft/application/cms/src/notification/cms_email.e
	draft/application/cms/src/notification/cms_storage_mailer.e
	draft/application/cms/src/storage/cms_sed_storage.e
	draft/application/cms/src/storage/cms_storage.e
	library/runtime/process/notification_email/notification_external_mailer.e
	tools/bin/ecf_updater.exe
2013-06-18 09:56:53 -03:00
218e73945d Updated ecf file as workaround to make autotest works fine. 2013-06-17 12:03:46 +02:00
4ab44a0c47 Added notification_email library as official EWF lib. 2013-06-13 09:47:09 +02:00
47dbe7fdbb Unicode support for notification_email library 2013-06-13 09:45:40 +02:00
2252971c3e Added HTTP_DATE.append_to...string conversion feature
Made HTTP_DATE.append_...to...string more flexible by acception STRING_GENERAL,
    so it is possible to append to STRING_32 (further more, it avoid potential implicit conversion)
2013-06-13 09:43:13 +02:00
28a6bb158a Removed a few obsolete usages, and benefit from new classes from EiffelStudio >= 7.2 2013-06-12 18:51:29 +02:00
f653507fc8 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
2013-06-12 18:50:45 +02:00
225cda0af7 minor optimization avoiding to create temporary string that might be big 2013-06-12 18:23:18 +02:00
f3f5384d9b Updated CMS support for unicode. 2013-06-12 18:22:56 +02:00
110a95b786 Fixing compilation of CMS demo project. 2013-06-12 18:12:06 +02:00
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
a982286dd4 Merge pull request #60 from oligot/notification
Extract notification email library from the CMS draft application
2013-06-12 06:43:10 -07:00
Olivier Ligot
c27f57adf1 Rename notification to notification_email 2013-06-12 13:55:14 +02:00
Olivier Ligot
6fbe66ff7b 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-12 11:31:31 +02:00
jvelilla
cef69039f5 merge 2013-06-11 11:33:27 -03:00
jvelilla
cdf3a25f88 Merge https://github.com/EiffelWebFramework/EWF 2013-06-11 11:12:15 -03:00
fa8b3fdccc Added HTTP_DATE.make_now_utc for convenience. 2013-06-11 11:49:45 +02:00
fbbd1f1eee Fixed various void-safety issue with recent compilers.
Note that EWF does now require EiffelStudio 7.2, and is compiling with 7.3
2013-06-07 15:40:50 +02:00
95f14c501c Merge branch 'master' of https://github.com/Eiffel-World/EiffelWebNino 2013-05-31 12:32:28 +02:00
f41e83c30c removed unused local variable 2013-05-31 12:28:58 +02:00
jvelilla
d1a0229944 Merge branch 'master' of https://github.com/jvelilla/EWF 2013-05-29 09:44:45 -03:00
jvelilla
63beaabfa0 Added command POST /session/:sessionId/modifier
Initial implementation of KeyBoard.
Added Mouse class, but not implemented.
2013-05-29 09:43:14 -03:00
Jocelyn Fiat
32cf1a5720 Merge pull request #10 from oligot/reuseaddr
Socket: reuse address to resolve the error "address already in use"
2013-05-29 03:04:53 -07:00
Olivier Ligot
b4ec6fdff8 Socket: reuse address to resolve the error "address already in use"
On Unix, when we stop the server, and then re-start it right away, we get an
error that the address is already in use:
http://www.softlab.ntua.gr/facilities/documentation/unix/unix-socket-faq/unix-socket-faq-4.html#ss4.1
This means that the sockets that were used by the first incarnation of the
server are still active.

One way to resolve this is to set the socket option SO_REUSEADDR:
http://www.softlab.ntua.gr/facilities/documentation/unix/unix-socket-faq/unix-socket-faq-4.html#ss4.5

Tested on Ubuntu 12.04 LTS
2013-05-29 11:14:58 +02:00
5b6c257fae Improved WGI_INPUT_STREAM.append_to_file (f: FILE; nb: INTEGER) 2013-05-28 15:04:50 +02:00
401bbc657a update cms style 2013-05-28 15:04:04 +02:00
f706e049bc Merge branch 'master' of github.com:EiffelWebFramework/EWF 2013-05-28 14:44:17 +02:00
eab8df7e10 Added WSF_REQUEST.read_input_data_into_file (FILE) 2013-05-28 14:42:11 +02:00
Jocelyn Fiat
28d158571c Merge pull request #57 from oligot/port
Use port number 9090 instead of 80
2013-05-27 04:34:25 -07:00
Olivier Ligot
35729b4ab6 Use port number 9090 instead of 80
Port 80 is often already used by standard webservers (Apache, nginx, ...).
Moreover, on Linux, ports below 1024 can only be opened by root.
2013-05-27 09:15:12 +02:00
jvelilla
caac696465 Update readme.md 2013-05-23 07:52:30 -03:00
jvelilla
c741e41597 Update readme.md 2013-05-23 07:50:18 -03:00
jvelilla
60fa076796 Update readme.md 2013-05-23 07:49:12 -03:00
jvelilla
7dbed3ade1 Updated command_executor
Added more examples.
2013-05-22 07:18:17 -03:00
jvelilla
a6cad7e811 Update find element examples.
Improved command executor
2013-05-20 10:46:06 -03:00
jvelilla
47da8c17ea Merge https://github.com/EiffelWebFramework/EWF 2013-05-19 10:17:52 -03:00
jvelilla
ad5b52f4e4 Added new selenium locator examples.
Fixed find_elements in WEB_DRIVER.
2013-05-18 23:12:37 -03:00
Jocelyn Fiat
af65519067 Merge pull request #56 from oligot/scrollbar
Fix the CSS so that we don't see the scrollbar
2013-05-17 08:34:45 -07:00
Olivier Ligot
c9b44414b1 Fix the CSS so that we don't see the scrollbar
This commit fixes the CSS so that we don't see the scrollbar anymore.
It just removes the width: 100% property on the div elements.
2013-05-17 16:33:00 +02:00
Jocelyn Fiat
b96a02d55d Merge pull request #55 from oligot/suggestion-method
Display suggestion is now configurable
2013-05-17 07:08:27 -07:00
Olivier Ligot
d8987f8718 Display suggestion is now configurable.
Commit 665772bda2 forces to display only
suggestion for the request's method (this was not the case before).

This commit allows to configure this behaviour: it keeps the current behaviour
but also allows to use the other behaviour where the suggestion is displayed
for each request method (as it was before).
2013-05-17 15:36:37 +02:00
430b34df4f removed unused local variable 2013-05-15 10:54:07 +02:00
1a518e4d27 use EWF_tmp- prefix for temp uploaded file name. 2013-05-15 10:52:32 +02:00
b09060315c fixed implementation of WSF_UPLOADED_FILE.append_content_to_string 2013-05-15 10:48:38 +02:00
899a32c86c Added WSF_UPLOADED_FILE.append_content_to_string (s: STRING) which can be used to get the content of the uploaded file. 2013-05-15 10:33:00 +02:00
7d5d55462f Added a way to customize the place to store temporary uploaded files 2013-05-15 10:31:05 +02:00
b083f1d596 code cleaning 2013-05-15 10:30:32 +02:00
c61afe77a0 removed unused local variable 2013-05-14 18:31:44 +02:00
654561bcbc Added WSF_REQUEST.has_execution_variable (a_name): BOOLEAN
Since the related value can be Void.
2013-05-14 18:17:48 +02:00
a065cfb2b5 Removed unused local variables. 2013-05-14 16:04:32 +02:00
5c51937b7e Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-05-14 15:58:17 +02:00
330d1462bf Reuse WSF_LAUNCHABLE_SERVICE code as ancestor of WSF_DEFAULT_SERVICE_I
Note that this way, it is easy to redefine `launch' in order to customize the launching instruction if needed (thinking about testing...)
This might breaks some code since it adds a `launch' feature, but it is easy to fix and unlikely to happen often.
2013-05-14 15:57:08 +02:00
jvelilla
7679898159 Move expectation classed under a expectation cluster, added a new expectation class
for header.
2013-05-14 09:29:50 -03:00
jvelilla
d344df6e7e Added examples find by id, name and class. 2013-05-14 09:28:21 -03:00
jvelilla
e0c3c783fa Updated selenium WEB_DRIVER_WAIT, the feature until_when now use a
predicate. Updated the related example.
2013-05-13 10:47:46 -03:00
jvelilla
30663dc9fb Merge branch 'master' of https://github.com/jvelilla/EWF 2013-05-10 09:49:17 -03:00
jvelilla
8db7d0daa3 Initial implementation of HTTP RESPONSE EXPECTATIONS.
Added a class to test http client with httpbin.org and expectations
2013-05-10 09:48:28 -03:00
Colin Adams
48bc71c6e3 Merge branch 'master' into handler 2013-05-10 09:27:23 +01:00
jvelilla
2d3dadc85e Update readme.md 2013-05-08 10:48:03 -03:00
jvelilla
e5765d356f Updated documentation
This documentation is based on Selinum http://docs.seleniumhq.org/
and adapted to the Eiffel implementation.
2013-05-08 10:38:25 -03:00
jvelilla
f8f1773d18 Update readme.md 2013-05-08 10:21:23 -03:00
jvelilla
15782c7795 Update readme.md 2013-05-08 10:20:48 -03:00
jvelilla
b777e81ab1 Updated WEB_DRIVER_WAIT class, still need to be improved.
Updated Readme and the example
2013-05-08 10:10:11 -03:00
jvelilla
e29346dec8 Merge https://github.com/EiffelWebFramework/EWF 2013-05-03 10:57:19 -03:00
jvelilla
8535a8378c Improve the example, Added a new class WEB_DRIVER_WAIT, still under development.
Update web driver, to define time outs.
2013-05-03 10:43:48 -03:00
Jocelyn Fiat
a75ab85356 Merge pull request #54 from colin-adams/master
Handle Precondition Failed for If-Match: * when no handler exists for the resource
2013-05-03 01:35:42 -07:00
jvelilla
dcdc700bac Added a simple search example.
Updated web_driver, use the API as delegation instead of inheritance.
Updated web_element class.
2013-04-30 10:19:34 -03:00
jvelilla
31c2be768f Created new classes to represent a web driver.
Added Examples, clean code
2013-04-29 18:02:33 -03:00
jvelilla
9180667ac4 Completed low level methods, clean code. 2013-04-24 14:39:08 -03:00
jvelilla
4f79bf2add Implemented more commands from REST API JSONWireProtocol
Refactor COMMAND_EXECUTOR.
2013-04-24 11:33:39 -03:00
Colin Adams
9eaada0bdb merged from master 2013-04-24 13:54:30 +01:00
jvelilla
c7e6fe38fb Added more command from JSONWireProtol. 2013-04-23 09:09:57 -03:00
jvelilla
9e8548d65a Added more commands from the JSONWireProtocol. 2013-04-23 08:26:02 -03:00
e8d96b3521 send the file date for download file response. 2013-04-22 21:06:29 +02:00
06088866e0 WSF_RESPONSE.put_header_text should use put_raw_header_data (and not append) 2013-04-22 21:06:06 +02:00
ad34ec1156 added header helper feature in the context interface
added HTTP_CLIENT_SESSION.custom (...)
to support any kind of request methods
2013-04-22 21:05:11 +02:00
jvelilla
3c41ca0864 Added new classes, implemented more methods from JSONWireProtol API.
Added test cases
2013-04-22 09:15:50 -03:00
Colin Adams
f52aa2ecff Made changes requested in review 2013-04-17 15:37:39 +01:00
jvelilla
c344ecceec Fixed errors in navigate_to_url command,
Fixed url templates in  json_wire_protocol_command.
Added test cases to AutoTest
2013-04-17 10:06:34 -03:00
jvelilla
ce2ca051f6 Fixed feature typo, improved commands, added AutoTest 2013-04-16 17:31:33 -03:00
jvelilla
c63e307179 Updated RestAPI commands 2013-04-15 16:16:16 -03:00
jvelilla
1daab0598a Improved error handling, implemented more methods from the REST API from Selenium2 2013-04-15 09:40:17 -03:00
Colin Adams
98ad77a57d If-Match implemented in skeleton handler 2013-04-13 14:49:03 +01:00
Colin Adams
b4ab4875fc If-Match implemented in skeleton handler 2013-04-13 14:48:28 +01:00
jvelilla
6ead464a6b Fixed configurations paths 2013-04-12 09:38:04 -03:00
jvelilla
3d36c353fc Initial import Selenium binding 2013-04-12 09:16:52 -03:00
a547cbaeb1 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 15:53:46 +02:00
Colin Adams
77e2a7107f Merge branch 'master' of git://github.com/colin-adams/EWF 2013-04-11 12:07:59 +01:00
Colin Adams
3997efcd2d Fixed Use Proxy response 2013-04-11 12:07:29 +01:00
Colin Adams
024e5e4b04 Fixed Use Proxy response bug 2013-04-11 12:04:11 +01:00
Colin Adams
92ce80cd63 Fixed bug in 32/8 bit string existance 2013-04-11 10:28:14 +01:00
Colin Adams
137afab3d3 Removed illegal precondition 2013-04-11 10:01:01 +01:00
Colin Adams
31ba0a8828 Handle Precondition Failed for If-Match: * where there is no handler for the resource 2013-04-11 09:23:41 +01:00
47e028de2a Fixed feature comments 2013-04-10 09:42:09 +02:00
a65f8cbc9c Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-04-10 09:31:07 +02:00
f85dc7f550 Fixed HEAD request related issue
see https://github.com/EiffelWebFramework/EWF/issues/53
2013-04-10 09:27:58 +02:00
Jocelyn Fiat
47d98a1a11 Merge pull request #52 from colin-adams/master
Bad postcondition for handle_use_proxy
2013-04-08 09:24:38 -07:00
Colin Adams
1b94f58e7a Removed incorrect postcondition for handle_use_proxy 2013-04-05 12:41:13 +01:00
5fc34d947a Cosmetic
fixed various indentations
Removed useless dependencies for ewf_ise_wizard project.
2013-04-05 12:12:26 +02:00
Jocelyn Fiat
aee512a316 fixed name of file with class name 2013-03-30 08:57:54 +01:00
Jocelyn Fiat
57a695555a fixed typo in default name for maintenance 2013-03-29 23:15:54 +01:00
Jocelyn Fiat
a7e1be115a Added a maintenance filter 2013-03-29 23:01:37 +01:00
Jocelyn Fiat
5b4c498ba6 added WSF_AGENT_FILTER 2013-03-29 22:16:27 +01:00
Jocelyn Fiat
decb9d0f9b more info in debug_output for uploaded file 2013-03-29 21:22:56 +01:00
Jocelyn Fiat
e3e6fd7f62 better error output for CGI connector 2013-03-29 21:00:02 +01:00
Jocelyn Fiat
0ef31cead3 Added WSF_LAUNCHABLE_SERVICE which use a deferred `launch' feature.
This makes it easy to support multiple connectors support
2013-03-29 17:51:20 +01:00
Jocelyn Fiat
a8a3f3cb8b reuse implementation from WSF_REQUEST to get input data for MIME handlers. 2013-03-29 17:50:34 +01:00
Jocelyn Fiat
8647ae1cd3 Added assertion for mime helper 2013-03-29 15:53:04 +01:00
Jocelyn Fiat
ec2792b645 Do not change tmp_name from WSF_UPLOADED_FILE ... otherwise the file will be removed at the end of the request 2013-03-29 15:10:51 +01:00
Jocelyn Fiat
1470389600 Fixed MIME multipart form data handler
And use content-length value if provided.
2013-03-29 15:10:17 +01:00
Jocelyn Fiat
1fcc69b268 check against capacity not count 2013-03-29 15:09:34 +01:00
Jocelyn Fiat
3bc3e3b874 be sure we got the full content same as content length 2013-03-29 14:20:01 +01:00
Jocelyn Fiat
f5b23c2571 Added assertion to WSF_UPLOADED_FILE 2013-03-29 12:11:43 +01:00
Jocelyn Fiat
9b0ec8a55b Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-03-28 19:08:06 +01:00
Jocelyn Fiat
a0c000b50f at this point we have no garantie that the header are sent
this can be ensured only at {WGI_RESPONSE}.commit exit.
2013-03-28 19:06:55 +01:00
Jocelyn Fiat
91624258eb Merge pull request #49 from colin-adams/protocol_version
First attempt at WSF_HTTP_PROTOCOL_VERSION
2013-03-27 10:53:52 -07:00
Colin Adams
ba314cb3f5 First attempt at WSF_HTTP_PROTOCOL_VERSION 2013-03-27 17:18:16 +00:00
Jocelyn Fiat
44cb0ad98c Uncommented code to make recognized_methods supported by the method not allowed response.
Still need to see how to use it and set the recognized methods for the application.
2013-03-27 17:10:04 +01: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
Jocelyn Fiat
20d7009383 Merge pull request #46 from colin-adams/skeleton_router
Skeleton router

note :
 - wsf_method_not_allowed_response.e needs deeper review
 - tidy some helper classes
2013-03-27 08:43:27 -07:00
Colin Adams
5249275b23 Further changes in response to review comments by Jocelyn 2013-03-27 15:38:13 +00:00
Colin Adams
4875ca9ff1 now all-safe.ecf compiles again 2013-03-27 14:44:14 +00:00
Colin Adams
a74fcd0575 delete ecf 2013-03-27 14:37:56 +00:00
Jocelyn Fiat
ab9c304597 added wsf_html for (un)installation 2013-03-27 15:24:40 +01:00
Jocelyn Fiat
178a48cd7e Updated all-safe.ecf
(add all-stable-safe.ecf that includes only the library, examples and specific draft lib)
2013-03-27 15:22:32 +01:00
Jocelyn Fiat
9f132a7b72 new integration ecf file that includes most of the library .ecf of EWF
(note to include non library ecf, the related ecf should have a library_target)
2013-03-27 13:11:49 +01:00
Jocelyn Fiat
403b9f7bde better use a root class 2013-03-27 13:08:57 +01:00
Jocelyn Fiat
a05e08c207 corrected null-safe.ecf 2013-03-27 13:07:55 +01:00
Colin Adams
8c5400915d openid demo fixed 2013-03-27 10:28:20 +00:00
Colin Adams
8ebaf2a917 merging from upstream - stage 4 2013-03-26 17:33:50 +00:00
Colin Adams
0507a1d347 merging from upstream - stage 3 2013-03-26 17:19:04 +00:00
Colin Adams
7c6980860c merging from upstream - stage 2 2013-03-26 17:10:09 +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
c9d11b3adb fixed compilation 2013-03-26 16:31:59 +01:00
Jocelyn Fiat
c3c8c66f59 allow to to set html attribute to the select widget
(useful to add code like  onchange="this.form.submit()")
2013-03-26 15:27:23 +01:00
Jocelyn Fiat
a23871ff5b 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-26 14:17:10 +01:00
Jocelyn Fiat
2eb9abeb37 Added remove_header_named (a_name) 2013-03-26 10:33:06 +01:00
Jocelyn Fiat
955272f505 Do not use socket_ok .. but readable (as specified in precondition of read_stream_thread_aware 2013-03-26 09:16:34 +01:00
Jocelyn Fiat
1ee6ffa725 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-25 19:13:55 +01:00
Colin Adams
ad5ccd6585 Corrected header comment 2013-03-23 17:15:17 +00:00
Jocelyn Fiat
da28baf872 use wsf_html lib in the demo 2013-03-22 20:15:27 +01:00
Jocelyn Fiat
3b87481c93 removed obsolete call 2013-03-22 20:15:09 +01:00
Jocelyn Fiat
53f848758a added wsf_html-safe.ecf to all-safe.ecf 2013-03-22 20:14:58 +01:00
Jocelyn Fiat
1f7f569d82 restored assertion removed by error 2013-03-22 20:12:12 +01:00
Jocelyn Fiat
52cc356f8e Extracted the WIDGET and FORM classes out of "cms" component
and build the wsf_html library which also include the previous css lib.
2013-03-22 20:11:44 +01:00
Jocelyn Fiat
de57e814c0 Added WSF_STARTS_WITH_AGENT_HANDLER 2013-03-22 16:07:23 +01:00
Jocelyn Fiat
273b4d13f5 Fixed default status code for redirection response message object. 2013-03-22 16:06:45 +01:00
Jocelyn Fiat
c44cf5e983 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.
2013-03-22 16:06:10 +01:00
Colin Adams
d96a76bffa Merge branch 'master' into skeleton_router 2013-03-22 14:28:01 +00:00
Jocelyn Fiat
665772bda2 Display only suggestion for request's method 2013-03-22 15:23:24 +01:00
Jocelyn Fiat
aa479af8fd Include cms and css into the all-safe.ecf 2013-03-22 15:11:30 +01:00
Jocelyn Fiat
9e2410c284 update CMS code due to CMS_CSS_* renaming 2013-03-22 15:10:49 +01:00
Jocelyn Fiat
eca868f10f 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.
2013-03-22 15:10:26 +01:00
Jocelyn Fiat
a4095b4e16 Moved the *_CSS_* class in their own (draft) library, since they are not CMS specific. 2013-03-22 15:07:45 +01: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
07ac6a6742 cosmetic 2013-03-21 15:55:42 +01: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
de8d36d0db cosmetic 2013-03-21 15:48:07 +01:00
Jocelyn Fiat
62d880a7c1 Fixed signature of `set_next' to allow redefinition.
Added assertions
2013-03-21 15:47:52 +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
19df76c332 Added WSF_HANDLER_FILTER_WRAPPER to build a bridge from router to filter. 2013-03-21 15:44:29 +01:00
Jocelyn Fiat
78c83a4b69 Added HTTP_AUTHORIZATION.is_basic: BOOLEAN query to know if this is a Basic HTTP Authorization. 2013-03-21 15:42:16 +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
ade9a30c03 Fixed WSF_FILE_RESPONSE and WSF_DOWNLOAD_RESPONSE
and set the status code to be Ok by default
2013-03-21 15:23:08 +01:00
Colin Adams
91a3b8176f Amedned class header of WSF_METHOD_NOT_ALLOWED_RESPONSE 2013-03-20 20:10:54 +00:00
Colin Adams
982efe6d14 Merge branch 'master' into skeleton_router 2013-03-20 07:19:44 +00:00
Jocelyn Fiat
3f237c737d mimic design of WSF_ROUTED_SERVICE for WSF_FILTERED_SERVICE
and update the filter example to make it simpler and reuse code.
2013-03-19 22:00:25 +01:00
Jocelyn Fiat
115b622724 updated install and uninstall scripts 2013-03-19 17:17:59 +01:00
Jocelyn Fiat
f502e6a6f7 Updated WSF_NOT_IMPLEMENTED_RESPONSE to include the request uri 2013-03-19 17:17:44 +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
b629bba5cc WSF_CORS_OPTIONS_FILTER should not inherit from WSF_URI_TEMPLATE_HANDLER 2013-03-19 17:09:18 +01:00
Colin Adams
d34c940c91 added reference to assertion tags in check justiciation 2013-03-19 15:59:17 +00: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
a4ea402fb5 Merge pull request #22 from oligot/cors
Cross-Origin Resource Sharing initial support
2013-03-19 03:16:54 -07:00
Jocelyn Fiat
ffd3e30086 Merge pull request #47 from colin-adams/master
Ignore Emacs backup files
2013-03-19 02:41:16 -07:00
Colin Adams
b614613ff4 Added emacs backup giles to .gitignore 2013-03-19 09:23:21 +00:00
Jocelyn Fiat
4d7660a9e3 Added deferred WSF_AGENT_HANDLER
Added WSF_NOT_IMPLEMENTED_RESPONSE
2013-03-18 22:05:34 +01:00
Jocelyn Fiat
b8490eff28 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2013-03-18 16:24:58 +01:00
Jocelyn Fiat
fc954c9521 added small doc on how to include EWF git repo in another git repository 2013-03-18 16:23:13 +01:00
Colin Adams
7435b4f454 refactored for WSF_ROUTED_SKELETON_SERVICE 2013-03-18 14:45:04 +00:00
Colin Adams
10ffa2066d prior to refactoring for WSF_ROUTED_SKELETON_SERVICE 2013-03-18 14:25:44 +00:00
Colin Adams
d56f4e6c7d prior to refactoring for WSF_ROUTED_SKELETON_SERVICE 2013-03-18 14:21:53 +00:00
Colin Adams
dd63042ec4 Added missing class 2013-03-17 10:38:00 +00:00
Colin Adams
4c946f5829 minor polishing 2013-03-17 09:57:00 +00:00
Colin Adams
767328287a added contracts and polished forbidden for OPTIONS * 2013-03-17 09:49:36 +00:00
Colin Adams
cda8e75f4c implemented OPTIONS * except for Allow header 2013-03-17 08:09:04 +00:00
Colin Adams
d01f47f1ee Implemented 414 and 503 responses on WSF_ROUTED_SERVICE 2013-03-16 15:12:58 +00:00
Colin Adams
a6fbed22fe Implemented 503 and 414 responses in WSF_ROUTED_SERVICE 2013-03-16 14:08:33 +00:00
Jocelyn Fiat
032f96378d Merge pull request #44 from colin-adams/master
Contracts for non-Void-safe users (take 5)
2013-03-15 10:50:40 -07:00
Colin Adams
1c19ff4544 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2013-03-15 16:30:01 +00:00
Colin Adams
2d439a2414 Sixth round of contracts for non-Void-safe users 2013-03-15 14:50:59 +00:00
Jocelyn Fiat
34629662ff Merge pull request #43 from colin-adams/master
Contracts for non-Void-safe users (take 4)
2013-03-15 07:25:47 -07:00
Colin Adams
acc0f4ae94 Merge branch 'master' of github.com:EiffelWebFramework/EWF
Pulling latest merges of other developers commits.
2013-03-15 14:08:37 +00:00
Colin Adams
a303783204 Fifth round of contracts for non-Void-safe users 2013-03-15 14:06:37 +00:00
Olivier Ligot
1198d6cef4 Merge remote-tracking branch 'upstream/master' into cors 2013-03-15 14:54:43 +01:00
Jocelyn Fiat
3e3869e391 Merge pull request #42 from colin-adams/master
Contracts for non-Void-safe users (take 3)
2013-03-15 06:39:47 -07:00
Jocelyn Fiat
8db9e85843 Merge pull request #28 from jocelyn/flexible_response
Allow to change status code and header as long as no content is sent.
Note this includes a change in EWSGI classes related to connector and RESPONSE. This modification was required for request processing termination.
2013-03-15 06:37:44 -07:00
Olivier Ligot
2ff2dbb7c3 Merge branch 'cors' of github.com:oligot/EWF into cors 2013-03-15 14:19:52 +01:00
Olivier Ligot
c8845e7354 Fix indentation 2013-03-15 14:18:13 +01:00
Olivier Ligot
dde70512d8 Use features from the flexible_response branch 2013-03-15 14:15:17 +01:00
Olivier Ligot
69495e69a9 Filter example: remove unused libraries in ecf file 2013-03-15 13:44:24 +01:00
Olivier Ligot
45f0971594 Use new upstrem method put_header_key_values 2013-03-15 13:38:40 +01:00
Olivier Ligot
496b831956 Merge remote-tracking branch 'jocelyn/flexible_response' into cors
Conflicts:
	examples/filter/filter-safe.ecf
	examples/filter/src/filter_server.e
	library/network/protocol/http/src/http_header.e
	library/server/wsf/src/wsf_response.e
2013-03-15 13:33:13 +01: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
Jocelyn Fiat
a2b63cb9ba Merge pull request #41 from colin-adams/master
Contracts for non-Void-safe users (take 2)
2013-03-14 10:35:16 -07:00
Colin Adams
049f769638 Amended header comment in response to code review of pull-request 2013-03-14 16:44:15 +00:00
Colin Adams
aef30966de Corrected header comment in response to code review of pull-request 2013-03-14 16:14:07 +00:00
Colin Adams
e14772fcc1 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2013-03-14 15:36:36 +00:00
Colin Adams
3206bcc4fd Further contracts for non-Void-safe users 2013-03-14 15:29:11 +00:00
Jocelyn Fiat
1627fd6d94 Merge pull request #40 from colin-adams/master
Contracts for non-Void-safe users (take 1)
2013-03-14 07:54:47 -07:00
Colin Adams
a96a143fe0 used across for assertion 2013-03-14 14:45:31 +00:00
Colin Adams
4ec2832375 Response to comments from review "Contracts for non-Void-safe users (take 1)" 2013-03-14 14:17:03 +00:00
Colin Adams
ca5619c6fc Added non-Void contracts for classes previously flagged by AutoTest 2013-03-14 11:48:46 +00:00
Jocelyn Fiat
86777d75ea Implemented more user friendly WSF_RESPONSE
i.e allow to change the status code and the header as long as no content is really sent back to the client

This requires an addition WGI_RESPONSE, new post_commit_action: PROCEDURE [...]
2013-03-12 16:52:45 +01:00
Jocelyn Fiat
82784529fe Enhanced HTTP_HEADER with new helper features. 2013-03-12 16:19:43 +01:00
Jocelyn Fiat
f6e15b6ce1 Made it compilable with 7.1 2013-03-08 22:13:27 +01:00
Jocelyn Fiat
334f7a362b Factorized code for checkbox and radio input.
Renamed `text' and similar to `title' and similar
2013-03-08 16:01:05 +01:00
Jocelyn Fiat
b278dba565 adding back missing uri template library 2013-03-08 16:00:15 +01:00
Jocelyn Fiat
58adb7ff88 Fixed CMS_HTML_FILTER which was buggy and was including the last processed tag even if it was excluded. 2013-03-08 15:49:25 +01:00
Jocelyn Fiat
617c48adcb 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
...
2013-03-08 15:48:39 +01:00
Jocelyn Fiat
231b263a82 Added `WSF_REQUEST.table_item' to help user get table item with flat name.
i.e instead of having  item ("foo").item ("bar"), you can do  table_item ("foo[bar]")
2013-03-08 15:36:31 +01:00
Jocelyn Fiat
37016a7796 Added user friendly function to get returned openid attributes 2013-03-08 15:35:23 +01:00
Jocelyn Fiat
504baaf859 better have hash table indexed by STRING_32 rather than READABLE_STRING_32 for now 2013-03-08 15:34:35 +01:00
Jocelyn Fiat
0d9e1a84f3 Use the advanced SED storable to store data on disk (rather than the runtime storable) 2013-03-08 15:34:04 +01:00
Jocelyn Fiat
f280f9b0de Added WITH_HTML_ATTRIBUTE 2013-03-05 17:21:03 +01:00
Jocelyn Fiat
2501bd3495 Added missing file from previous commits. 2013-03-01 18:27:22 +01:00
Jocelyn Fiat
f029c746bc added make_with_text_and_css on CMS_WIDGET_TABLE_ITEM 2013-03-01 18:21:05 +01:00
Jocelyn Fiat
42bd4fa58f added notion of site identifier .. applied to the session's cookie name 2013-03-01 18:20:35 +01:00
Jocelyn Fiat
98f3739c7c Fixed HTTP_IF_MODIFIED_SINCE handling in WSF_FILE_SYSTEM_HANDLER ... 2013-03-01 18:19:51 +01:00
Jocelyn Fiat
441cf86eda Enhanced HTTP_DATE with yyyy_mmm_dd output string. 2013-03-01 18:11:22 +01:00
Jocelyn Fiat
c1d913e67d display a message if the user has no email ... to reset password 2013-03-01 18:11:03 +01:00
Jocelyn Fiat
65d8665a64 Display the login name, instead of just "My Account" 2013-03-01 18:10:40 +01:00
Jocelyn Fiat
4a92612441 Does not accept empty password 2013-03-01 18:10:16 +01:00
Jocelyn Fiat
7cf395a9bc added the notion of site identifier "site.id" (typically this could be a UUID) 2013-03-01 18:10:02 +01:00
Jocelyn Fiat
7efcdb065e Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-03-01 12:55:54 +01:00
Jocelyn Fiat
218b2e44a7 Also take into account sublink's permission 2013-03-01 12:55:26 +01:00
Jocelyn Fiat
544401c210 Default permission should be set to False, not to True
(the previous code was mainly for debugging)
2013-03-01 12:54:58 +01:00
Jocelyn Fiat
f3d37024fb Fixed url computing when a `base_url' is provided 2013-03-01 12:53:48 +01:00
Jocelyn Fiat
ce7be6ea34 added CMS widgets demonstration in DEMO_MODULE 2013-02-28 19:37:06 +01:00
Jocelyn Fiat
5dd6079fad add CMS_WIDGET_... to ease html page development. 2013-02-28 19:36:30 +01:00
Jocelyn Fiat
e7b8f398f7 improved CMS_CSS_STYLE and WITH_CSS_STYLE 2013-02-28 19:36:09 +01:00
Jocelyn Fiat
9d8e8eb25a Move draft\library\security\openid under library\security\openid 2013-02-28 17:00:13 +01:00
Jocelyn Fiat
ff9be2cf8e Made it also compilable with compiler < 7.2 2013-02-28 14:13:04 +01:00
Jocelyn Fiat
db4f665de1 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)
2013-02-28 13:10:04 +01:00
Jocelyn Fiat
06c9364362 updated relative path 2013-02-28 10:56:58 +01:00
Jocelyn Fiat
69a77dc2c5 OpenID consumer implementation
REQUIRES EiffelStudio 7.2
2013-02-27 22:13:31 +01:00
Jocelyn Fiat
d4091a57c9 First version of OpenID consumer
(light implementation)
2013-02-27 22:09:06 +01:00
Jocelyn Fiat
2302a91b5b Merge branch 'master' of https://github.com/EiffelWebFramework/EWF 2013-02-27 21:50:14 +01:00
Jocelyn Fiat
22a725b8be Added a way to call a callback on launched and stopped for Nino connector 2013-02-27 21:49:42 +01:00
Jocelyn Fiat
92d3f642ac Provided a way to report cURL error code back to http_client, via HTTP_CLIENT_RESPONSE 2013-02-27 21:49:03 +01:00
Jocelyn Fiat
598f6df366 Provided `url_encoded_name' on the WSF_VALUE interface 2013-02-27 21:48:33 +01:00
Jocelyn Fiat
9c0a2bd6a1 prefer 2 append call, rather than create a temp intermediary string object with + 2013-02-26 15:33:00 +01:00
Jocelyn Fiat
0902eef91c Use append_to_html rather than function to_html: STRING
this is mainly to avoid creating useless intermediary strings.
2013-02-26 12:22:53 +01:00
Olivier Ligot
12404a2d5c CORS: respect specification regarding Access-Control-Allow-Headers
According to the specification, the value of the response header
Access-Control-Allow-Headers must contain at least all the values of the
request header Access-Control-Request-Headers to be considered a valid request.
Before this commit, only the Authorization value was present, which is enough
for Firefox but not for Chrome.
This should now work as expected.
2013-02-22 15:58:09 +01:00
Jocelyn Fiat
b543a6b6f2 Added functionalities to CMS_FORM_.. classes 2013-02-21 19:08:26 +01:00
Jocelyn Fiat
a417cc1e16 Fixing various form urls, that was not taking into account base url 2013-02-20 19:05:33 +01:00
Jocelyn Fiat
5d05f31d03 Fixed absolute url computing for CMS 2013-02-19 16:22:43 +01:00
Jocelyn Fiat
c9674b9e8e Fixed computation of absolute url ... 2013-02-19 13:25:12 +01:00
Jocelyn Fiat
fd0d771d43 Fixed request new password 2013-02-19 10:41:50 +01:00
Jocelyn Fiat
0d51189324 Code cleaning
and use HTTP_DATE instead of duplicating code.
2013-02-19 10:41:33 +01:00
Jocelyn Fiat
a97235c7b7 Now the cms.ini resolves variable ${abc} ... and key is case insensitive 2013-02-15 19:00:05 +01:00
Jocelyn Fiat
c62ad33ddc removed unused local variable 2013-02-15 15:10:31 +01:00
Jocelyn Fiat
5eb8baa096 keep compilable with EiffelStudio <= 7.1 2013-02-15 15:08:53 +01:00
Jocelyn Fiat
61c8388eba 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-15 12:33:58 +01:00
Jocelyn Fiat
9be87e8e15 Now also display sublinks if link is expanded.
Updated theme
2013-02-14 13:11:34 +01:00
Jocelyn Fiat
84df92de10 added EIS note documentation link for URI_TEMPLATE 2013-02-14 13:09:32 +01:00
Jocelyn Fiat
df9eb65144 Fixed register and new password link when the CMS's base dir is not the root / 2013-02-14 13:09:11 +01:00
Jocelyn Fiat
bf952a9719 Improved CMS PAGER 2013-02-14 13:08:26 +01:00
Jocelyn Fiat
1560752f97 Improve CMS_LINK to easily add children 2013-02-14 13:08:12 +01:00
Jocelyn Fiat
589abc71a7 provide a way to pass style class to sidebars and content blocks 2013-02-14 13:07:49 +01:00
Jocelyn Fiat
61e17a9134 Fixed remaining issues with recursion in non flat web forms 2013-02-05 19:24:46 +01:00
Jocelyn Fiat
09c3e56f86 added CMS_FORM_SELECT.select_value_by_text 2013-02-05 19:24:13 +01:00
Jocelyn Fiat
3dbccc024f fixed is_active by taking into account the query string as well 2013-02-05 19:23:54 +01:00
Jocelyn Fiat
993f1ad6b9 cleaning in CMS_CONFIGURATION
and added append_to_string (s: STRING)
2013-02-05 15:14:55 +01:00
Jocelyn Fiat
7028ce07f4 remove unwanted console output 2013-02-05 13:19:59 +01:00
Jocelyn Fiat
461cb4a4db Reviewed initialization and usage of various CMS_SERVICE urls 2013-02-04 22:04:55 +01:00
Jocelyn Fiat
cffc02daee more flexible permission control system ... 2013-02-04 18:44:21 +01:00
Jocelyn Fiat
451aa7773d make ANY_CMS_EXECUTION more flexible 2013-02-04 16:47:29 +01:00
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
oligot
0eff04c847 Add support for Apache logging: done 2013-02-03 04:10:46 -08: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
Jocelyn Fiat
71b1bad53d 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-18 23:25:54 +01:00
Jocelyn Fiat
82c779fd60 fixed autotests compilation 2012-12-17 17:53:06 +01:00
Jocelyn Fiat
68ec6fb29c Made WSF_REQUEST.is_content_type_accepted safer. 2012-12-14 15:52:54 +01:00
Jocelyn Fiat
cc570f5abf Added WSF_DEFAULT_*_RESPONSE
Fixed the method not allowed by setting the Allow: header
2012-12-14 15:52:35 +01:00
Jocelyn Fiat
8e31950285 Improved HTTP_AUTHORIZATION 2012-12-14 15:51:34 +01:00
Jocelyn Fiat
4612fdb5de Added Authorization and Allow
Added is_empty and count
2012-12-14 15:51:12 +01:00
Jocelyn Fiat
6eb0ebd873 Merge pull request #16 from colin-adams/master
Implementation for automatic HEAD and first pass at HTTP 1.1 conformance contracts
2012-12-13 13:58:42 -08:00
Jocelyn Fiat
4a65015988 removed unused local variables 2012-12-13 18:43:15 +01:00
Jocelyn Fiat
e7f458fd50 added code that may be used to avoid breaking compatibility with new Eiffel Studio 7.2
This is experimental for now.
2012-12-13 18:16:01 +01:00
Jocelyn Fiat
b7505e67b8 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
2012-12-13 17:29:46 +01:00
Jocelyn Fiat
ff7d963d55 Fixed WGI_INPUT_STREAM read_to_string and append_to_string 2012-12-13 17:24:55 +01:00
Jocelyn Fiat
d264899e8b Merge branch 'master' of https://github.com/eiffelhub/json 2012-12-13 12:02:27 +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
3e976768ac Merge pull request #3 from jvelilla/master
Fixed documentation URI
2012-12-12 09:58:35 -08:00
Jocelyn Fiat
dc16bcc87b Merge pull request #4 from oligot/fix_json_object_hash_code
Fix {JSON_OBJECT}.hash_code implementation
2012-12-12 09:58:11 -08:00
Jocelyn Fiat
025457747b Merge pull request #20 from oligot/fix_fcgi_safe
use /usr/lib/libfcgi.so instead of /usr/local/lib/libfcgi.so
2012-12-12 05:59:02 -08:00
Olivier Ligot
ed325f81e1 use /usr/lib/libfcgi.so instead of /usr/local/lib/libfcgi.so
This was already fixed in libfcgi.ecf
(commit 65a998cec3)
This fixes the libfcgi-safe.ecf file
2012-12-12 13:34:50 +01:00
Colin Adams
eafb04719d Actioned Jocelyns comments re. a_req and a_res 2012-12-11 19:26:06 +00:00
Olivier Ligot
233de09c48 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 17:39:22 +01:00
Jocelyn Fiat
df0d3e584c Fixed issue related to vars that are already converted to WSF_TABLE 2012-12-10 11:00:06 +01:00
Jocelyn Fiat
903495175d Get rid of obsolete scripts
(we do not use git submodule anymore, so this is much easier .. for the users)
2012-12-10 10:59:57 +01:00
Colin Adams
365da7e30a merged from upstream 2012-12-08 08:25:47 +00:00
Jocelyn Fiat
e20cb6b6ed make it compiles with EiffelStudio 7.1 and 7.2 2012-12-07 14:55:38 +01:00
Colin Adams
58f26fdc1b Revert do_get_head patch 2012-12-06 19:48:13 +00:00
Jocelyn Fiat
926ae823ac compile all-safe.ecf as windows or unix, even if not on Windows or unix 2012-12-05 22:39:43 +01:00
Jocelyn Fiat
39c3e8c5cf corrected null connector ecf files 2012-12-05 22:39:05 +01:00
Jocelyn Fiat
7308a76ac8 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-12-05 22:31:19 +01:00
Jocelyn Fiat
9499d4aa59 added tests\all-safe.ecf to compile most of EWF's lib, to quickly check the compilation state 2012-12-05 22:30:28 +01:00
Jocelyn Fiat
20c94e927d use libfcgi(-safe).ecf rather than fcgi(-safe).ecf 2012-12-05 22:30:26 +01:00
Jocelyn Fiat
5de14b114e Provide a way to log into a file, rather than just console output
Minor optimization for WSF_LOGGING_FILTER
2012-12-05 22:30:24 +01:00
Jocelyn Fiat
a9f3ea7886 Prepare upcoming support for unicode environment variables 2012-12-05 22:30:21 +01:00
Jocelyn Fiat
d445559890 removed fcgi(-safe).ecf files ... since there renamed libfcgi(-safe).ecf 2012-12-05 22:30:19 +01:00
Olivier Ligot
4ed8365afe ise_wizard Unix shell scripts 2012-12-05 22:30:16 +01:00
Olivier Ligot
a6ca54f958 Fix ise_wizard
* ewf.ini was used instead of template.ecf as configuration file
* remove initialize_router otherwise the compilation failed
* remove unused variables
2012-12-05 22:30:14 +01:00
Olivier Ligot
075ac1d628 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 22:30:12 +01:00
Jocelyn Fiat
2ed861e3d9 added tests\all-safe.ecf to compile most of EWF's lib, to quickly check the compilation state 2012-12-05 22:26:58 +01:00
Jocelyn Fiat
e1dffa542e use libfcgi(-safe).ecf rather than fcgi(-safe).ecf 2012-12-05 22:21:36 +01:00
Jocelyn Fiat
43df8f573b Provide a way to log into a file, rather than just console output
Minor optimization for WSF_LOGGING_FILTER
2012-12-05 22:20:56 +01:00
Jocelyn Fiat
78b161df16 Prepare upcoming support for unicode environment variables 2012-12-05 22:19:59 +01:00
Jocelyn Fiat
bbf63c1cc0 removed fcgi(-safe).ecf files ... since there renamed libfcgi(-safe).ecf 2012-12-05 17:02:32 +01:00
Jocelyn Fiat
25f6528d2e Merge pull request #17 from oligot/logging_filter
Logging filter
2012-12-05 08:00:43 -08:00
Jocelyn Fiat
21ec257091 Merge pull request #19 from oligot/ise_wizard_sh
ise_wizard Unix shell scripts
2012-12-04 06:06:27 -08:00
Olivier Ligot
eb676bd14b ise_wizard Unix shell scripts 2012-12-04 14:42:09 +01:00
Jocelyn Fiat
9770af09b4 Merge pull request #18 from oligot/fix_ise_wizard
Fix ise_wizard
2012-12-04 03:01:41 -08:00
Olivier Ligot
e9376b5d16 Fix ise_wizard
* ewf.ini was used instead of template.ecf as configuration file
* remove initialize_router otherwise the compilation failed
* remove unused variables
2012-12-03 17:37:26 +01:00
Olivier Ligot
fc8188aeb1 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 16:29:12 +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
e0166a4c44 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-12-03 11:30:47 +01:00
Jocelyn Fiat
c2fa3cd70a Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-12-03 11:13:59 +01:00
Jocelyn Fiat
aa0207bece updated ecf path 2012-12-03 11:12:53 +01:00
Jocelyn Fiat
125d44ff67 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
2012-11-26 22:58:48 +01:00
Jocelyn Fiat
bdee22f647 added debug_output to WSF_ROUTER_MAPPING 2012-11-26 22:37:44 +01:00
Jocelyn Fiat
8b5353df0a Avoid using INDEXABLE_ITERATION_CURSOR.is_last 2012-11-26 16:06:08 +01:00
Jocelyn Fiat
f18ef477b8 Included the library base(-safe).ecf which was forgotten by mistake. 2012-11-25 21:30:10 +01:00
Jocelyn Fiat
63b4f6509e Fixed compilation due to recent changes from http_client and corrected design. 2012-11-25 17:28:27 +01:00
Colin Adams
a9d83f97a8 Completed first pass for HTTP 1.1 conformace contracts 2012-11-24 15:45:42 +00:00
Colin Adams
68cd78d87d Forced HEAD when GET requested 2012-11-24 14:13:38 +00:00
Colin Adams
496df96f75 First postconditions relating to response codes added 2012-11-24 14:02:26 +00:00
Colin Adams
17ce1be582 Added framework for HTTP-conforming contracts 2012-11-24 11:55:10 +00:00
Jocelyn Fiat
b7379a6289 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-11-23 22:52:57 +01:00
Jocelyn Fiat
f0c5cf20f8 Update README.md 2012-11-23 22:52:20 +01:00
Jocelyn Fiat
5f152cff5a Update README.md 2012-11-23 22:52:17 +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
78ceebf979 Update README.md 2012-11-23 18:56:44 +01:00
Jocelyn Fiat
108ab43031 Made encoder and error library compilable with 6.8 2012-11-23 18:56:09 +01:00
Jocelyn Fiat
ca1fb5a4ce Update README.md 2012-11-23 18:37:39 +01:00
Jocelyn Fiat
c654759d8e Added SHARED_... classes for encoders (html, url, xml, json, ...) 2012-11-23 18:06:56 +01:00
Jocelyn Fiat
f817008bcd Do not use {INDEXABLE_ITERATION_CURSOR}.is_last since it is added from EiffelStudio v7.2 2012-11-23 18:04:21 +01:00
Jocelyn Fiat
66ac29b3fc Updated signatures for the self documentated message 2012-11-23 15:59:56 +01:00
Jocelyn Fiat
dcb630ce98 Updated self documentation 2012-11-23 15:52:59 +01:00
Jocelyn Fiat
d8b6f80411 Added WSF_NOT_FOUND_RESPONSE to respond 404 Not found page 2012-11-23 15:52:39 +01:00
Jocelyn Fiat
9fcb897b0b Allow to use WSF_ROUTER_SELF_DOCUMENTATION_MESSAGE without any WSF_ROUTER_SELF_DOCUMENTATION_HANDLER
i.e without any specific URL to this self documentation.
Added custom value such as header, footer, style css url ...
2012-11-23 14:12:13 +01:00
Jocelyn Fiat
5926bbc0c2 Fixed signature of WSF_MIME_HANDLER.handle 2012-11-23 12:39:16 +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
ee13393a91 Made WSF_ROUTER_METHODS.new_cursor an INDEXABLE_ITERATION_CURSOR which is richer than just ITERATION_CURSOR 2012-11-23 10:07:33 +01:00
oligot
2b92ba9e62 Updated Useful links (markdown) 2012-11-22 11:28:17 -08:00
oligot
c23bf7a05d Created Useful links (markdown) 2012-11-22 04:30:08 -08:00
Jocelyn Fiat
fdd40ff08d minor change: reuse local variable 2012-11-21 09:48:58 +01:00
Jocelyn Fiat
86540814b3 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-21 09:48:28 +01:00
Jocelyn Fiat
504e013a74 removed "rest" from readme.md 2012-11-20 13:50:40 +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
6621da202d Removed pseudo rest library from draft libraries. 2012-11-20 13:49:28 +01:00
Jocelyn Fiat
ead896e870 Updated git tips related to subtree to avoid weird issue when "pulling" subtree which was putting files in wrong locations. 2012-11-15 16:32:11 +01:00
Jocelyn Fiat
e65c2da528 Merge branch 'master' of https://github.com/eiffelhub/json 2012-11-15 16:29:02 +01:00
Jocelyn Fiat
ab84e5a7a0 Fixed message for exception_failed_to_convert_to_json
Fixed indentation
2012-11-15 16:18:28 +01:00
jvelilla
f17abb1679 Update Readme.txt
Fixed documentation URI
2012-11-15 08:26:51 -02:00
Jocelyn Fiat
814ea051f1 Fixed compilation 2012-10-23 13:09:26 +02:00
Jocelyn Fiat
56214129bd Provide `server_url: STRING' that compute the http://server_name:port or https://...
using `server_name', `server_port', `server_protocol' and avoid using `http_host'
which is not reliable and could be cause of security issue.
2012-10-23 12:10:33 +02:00
Jocelyn Fiat
2c2e031944 Fixed Date: formatting, follow RFC 1123 2012-10-23 12:00:59 +02:00
Jocelyn Fiat
50d5254060 Added WSF_REQUEST_UTILITY_PROXY, that provides the WSF_REQUEST_UTILITY features to a class that implement request: WSF_REQUEST 2012-10-22 17:09:57 +02:00
Jocelyn Fiat
7dce121f8c added REST_URI_TEMPLATE_ROUTING_HANDLER 2012-10-22 14:54:02 +02:00
Jocelyn Fiat
2e774f2e10 Added WSF_ROUTING_CONTEXT_HANDLER 2012-10-22 14:27:03 +02:00
Jocelyn Fiat
b781caa2c2 Fixing design of draft rest lib (which is going to be removed soon) 2012-10-22 14:04:42 +02:00
Jocelyn Fiat
84d1f20fd0 Do not set default status if a status is already set. 2012-10-22 11:15:52 +02:00
Jocelyn Fiat
fb3148aeea Using anchor type to create the router
this is more flexible for eventual descendants redefining the router
2012-10-22 11:15:23 +02:00
oligot
92cbf48b49 Updated Projects new suggestions (markdown) 2012-10-08 03:38:12 -07: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
2d3151e45f Removed unwanted commented line 2012-10-08 09:27:03 +02:00
Jocelyn Fiat
146fd3cc7d Updated "filter" example
Signed-off-by: Olivier Ligot <oligot@gmail.com>
2012-10-08 09:24:19 +02:00
Jocelyn Fiat
016efaed15 Updated Copyright 2012-10-04 15:04:14 +02:00
Jocelyn Fiat
d9990df23f updated copyright 2012-10-04 15:01:02 +02:00
Jocelyn Fiat
9333d9c5be Updated filter example to demonstrate the use of context.
(note: this commit is a merged of pull request from Olivier Ligot, and changes from Jocelyn Fiat)

Signed-off-by: Jocelyn Fiat <jfiat@eiffel.com>
Signed-off-by: Olivier Ligot <oligot@gmail.com>
2012-10-04 15:00:44 +02:00
Jocelyn Fiat
55e4602faf Fixed compilation for STARTS_WITH_ handler 2012-10-04 14:52:28 +02:00
Jocelyn Fiat
737213b44c Added WSF_RESOURCE_CONTEXT_HANDLER_HELPER 2012-10-04 14:46: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
f7615edec9 fixed wsf_extension path in filter-safe.ecf file 2012-10-03 15:54:22 +02:00
Jocelyn Fiat
68f548e7cb Merge pull request #2 from jvelilla/master
Fix Assignment attempt and wsf_extension path in RestBucksCRUD
2012-10-02 03:38:30 -07:00
jvelilla
a0ebdb6098 Fixed wsf_extension.ecf path, in the example RestBucksCRUD.
Replace the assigment attempt with attached syntax
2012-10-02 07:12:42 -03:00
Jocelyn Fiat
6619349f7b Fixed some configuration files (ecf)
Fixed various compilation issue
Fixed draft rest library (still experimental and should be removed in the future)
2012-10-01 12:04:17 +02:00
Jocelyn Fiat
e0a88aec26 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-09-28 14:54:01 +02:00
Jocelyn Fiat
58d4decc58 Added initial experimentation of a CMS built with Eiffel 2012-09-28 14:53:16 +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
fed7b1d1e6 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-09-28 11:00:38 +02:00
Jocelyn Fiat
80c1cc1c0d Fixed wizard generated code with new router design 2012-09-27 16:10:50 +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
Jocelyn Fiat
cdb88059bc Fixed Restbuck examples with new router design 2012-09-26 16:41:13 +02:00
Jocelyn Fiat
94a91fa4aa added missing wsf_routing_filter 2012-09-26 09:45:33 +02:00
Jocelyn Fiat
28186efbe7 Applied new ROUTER design to the whole EWF project. 2012-09-25 23:18:17 +02:00
Jocelyn Fiat
0e1f67809c Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-09-20 10:31:04 +02:00
Jocelyn Fiat
0503e63209 Minor implementation changes (feature renaming, ... ) 2012-09-19 10:50:38 +02:00
Jocelyn Fiat
ace897ea2b 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-19 10:50:27 +02:00
jocelyn
1dc6ff6df1 Updated Meetings (markdown) 2012-09-19 00:25:16 -07:00
jocelyn
e72ffab2ca Updated Home (markdown) 2012-09-19 00:24:53 -07:00
jocelyn
e7a06ebc2e Updated Home (markdown) 2012-09-19 00:23:40 -07:00
jocelyn
e12e0b35ee Created Meetings (markdown) 2012-09-19 00:22:50 -07:00
jocelyn
c6dac0384b Updated Projects (markdown) 2012-09-18 23:40:52 -07:00
jocelyn
e48cee9b4a Updated Projects (markdown) 2012-09-18 23:39:45 -07:00
jocelyn
9229b66091 Updated Web meeting 2012 09 18 (markdown) 2012-09-18 13:27:01 -07:00
oligot
eea428831c Updated Web meeting 2012 09 18 (markdown) 2012-09-18 06:57:38 -07:00
jocelyn
ad12d3e16d Updated Web meeting 2012 09 18 (markdown) 2012-09-18 06:24:31 -07:00
jocelyn
b1fcedf501 Updated Web meeting 2012 09 18 (markdown) 2012-09-18 06:06:12 -07:00
jocelyn
2b00192e87 Updated Web meeting 2012 09 18 (markdown) 2012-09-18 06:04:13 -07:00
oligot
2b82e7f07f Updated Web meeting 2012 09 18 (markdown) 2012-09-17 11:42:18 -07:00
jocelyn
f820d25a9e Updated Web meeting 2012 09 18 (markdown) 2012-09-17 10:04:24 -07:00
oligot
6e76747772 Created Web meeting 2012 09 18 (markdown) 2012-09-14 01:16:00 -07:00
Jocelyn Fiat
e17f00cad6 Merge pull request #1 from GroupeS/fix_hash_table_converter
[FIX] Convertion from DS_HASH_TABLE keys to JSON
2012-09-13 08:55:32 -07:00
Olivier Ligot
6cd21c39eb [FIX] Indentation 2012-09-12 22:01:13 +02:00
Jocelyn Fiat
66af07e28e Merge pull request #2 from oligot/fix_test_compilation
[FIX] Unknown identifier 'unescaped_string'
2012-09-12 12:49:47 -07:00
Olivier Ligot
f361ce65c6 [FIX] Convertion from HASH_TABLE keys to JSON 2012-09-12 20:05:49 +02:00
Olivier Ligot
d01bccbc84 Merge branch 'master' into fix_hash_table_converter 2012-09-12 19:54:06 +02:00
Olivier Ligot
42b971f28e [FIX] Unknown identifier 'unescaped_string' 2012-09-12 17:14:49 +02:00
Jocelyn Fiat
0f59535696 Added general_encoded_string (..) that accepts READABLE_STRING_GENERAL 2012-09-11 20:53:13 +02:00
Jocelyn Fiat
795f82d51f added WSF_VALUE.is_empty: BOOLEAN 2012-09-10 16:28:25 +02:00
Jocelyn Fiat
fbd9cb9588 Added `HTML_ENCODER.general_encoded_string (s: READABLE_STRING_GENERAL): STRING_8'
(note: probably we should do similar change for all the encoders)
2012-09-10 09:36:27 +02:00
Jocelyn Fiat
0d8363aa3f Fixed issue when applying URI_TEMPLATE result to WSF_REQUEST to populate path_parameters', now if we have table parameter for foo[]' .. we ignore any string parameter with same name `foo'
Also fixed issue where the encoded name were changed later, since it kept the same string reference.
Added `WSF_REQUEST.is_post_request_method: BOOLEAN' and `WSF_REQUEST.is_get_request_method: BOOLEAN' to ease app code
2012-09-10 09:35:47 +02:00
Jocelyn Fiat
153a853df5 Added `WSF_TABLE.is_empty: BOOLEAN'
Added `WSF_TABLE.as_array_of_string: detachable ARRAY [READABLE_STRING_32]'
2012-09-10 09:31:27 +02:00
Jocelyn Fiat
45daa731cf 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-09-10 09:27:32 +02:00
Jocelyn Fiat
f117cc0b97 Merge pull request #13 from GroupeS/filter
Filter: pre-process incoming data and post-process outgoing data
2012-09-05 08:02:41 -07:00
Olivier Ligot
b33d471cf8 [FIX] Path to libraries 2012-09-05 14:18:43 +02:00
Olivier Ligot
7ba863f43c Merge remote-tracking branch 'upstream/master' into filter 2012-09-05 14:08:41 +02:00
Jocelyn Fiat
bd15133e2b Also convert from STRING_8 to URI_TEMPLATE (not only from READABLE_STRING_8) 2012-08-31 07:03:15 +02:00
Jocelyn Fiat
0c110169de fixed location of ewf.ini for ISE wizard 2012-08-28 17:06:14 +02:00
Jocelyn Fiat
61b7f89e3b Fixed source code for building and installing the ISE Wizard 2012-08-28 16:45:25 +02:00
Jocelyn Fiat
2f94214863 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-08-24 12:05:49 +02:00
oligot
15d12b86aa Add support for Swagger 2012-08-24 02:54:47 -07:00
Jocelyn Fiat
40e524337e Merge branch 'master' of https://github.com/eiffelhub/json
Conflicts:
	draft/library/gobo/shared_gobo_ejson.e
	draft/library/kernel/converters/json_converter.e
	draft/library/kernel/converters/json_hash_table_converter.e
	draft/library/kernel/converters/json_linked_list_converter.e
	draft/library/kernel/ejson.e
	draft/library/kernel/shared_ejson.e
	draft/test/autotest/test_suite/json_author_converter.e
	draft/test/autotest/test_suite/json_book_collection_converter.e
	draft/test/autotest/test_suite/json_book_converter.e
	draft/test/autotest/test_suite/test_json_core.e
2012-08-24 02:40:54 -07:00
Jocelyn Fiat
5487b04922 Merge branch 'master' of https://github.com/EiffelWebFramework/EWF.wiki
Conflicts:
	doc/wiki/Home.md
2012-08-24 02:22:49 -07:00
Jocelyn Fiat
425f3fbb86 Merge branch 'master' of https://github.com/EiffelWebFramework/EWF.wiki
Conflicts:
	doc/wiki/Home.md
2012-08-24 07:54:03 +02:00
jocelyn
a29bbab0a8 Updated Projects (markdown) 2012-08-14 01:16:50 -07:00
jocelyn
55fc25b258 Updated Projects (markdown) 2012-08-13 03:41:07 -07:00
jocelyn
681e331dec Updated Projects Suggestions (markdown) 2012-08-13 03:40:44 -07:00
jocelyn
693b5b2d1b Updated Projects Suggestions (markdown) 2012-08-13 03:40:22 -07:00
jocelyn
97018e93f6 Updated Projects (markdown) 2012-08-13 03:39:54 -07:00
jocelyn
c92be6de09 Updated Projects (markdown) 2012-08-13 03:35:26 -07:00
jocelyn
26706841a5 Updated Projects Suggestions (markdown) 2012-08-13 03:34:55 -07:00
jocelyn
a7577bb330 Updated Projects Suggestions (markdown) 2012-08-13 03:33:58 -07:00
jocelyn
dc3a897150 Updated Projects Suggestions (markdown) 2012-08-13 03:33:18 -07:00
jocelyn
764b076b88 Updated Project suggestions (markdown) 2012-08-13 03:32:52 -07:00
jocelyn
e861d65e99 Created Project suggestions (markdown) 2012-08-13 03:32:28 -07:00
jocelyn
2f556cb99e Updated Projects (markdown) 2012-08-13 03:26:44 -07:00
jocelyn
38f856a54b Updated Projects (markdown) 2012-08-13 03:17:28 -07:00
Olivier Ligot
74334e665d [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-10 10:09:59 +02:00
Jocelyn Fiat
b6464cf5e7 removed "getest" since it is duplication with autotest (and we use mainly the later for regression testing) 2012-08-08 09:13:33 +02:00
Jocelyn Fiat
8b33c77008 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-08-08 08:51:00 +02:00
Olivier Ligot
aedf8ec1cd [FIX] Convertion from DS_HASH_TABLE keys to JSON
This is useful when the type of the key is something else than a STRING
and we have a JSON converter for this type.
2012-08-02 14:06:48 +02:00
jocelyn
3fc4936428 Updated Projects (markdown) 2012-07-31 00:46:23 -07:00
jocelyn
8a91796d12 Updated Projects (markdown) 2012-07-30 05:21:14 -07:00
jocelyn
8812b660da Updated Projects (markdown) 2012-07-30 05:12:24 -07:00
jocelyn
0647d40865 Updated Projects (markdown) 2012-07-30 05:11:18 -07:00
jocelyn
65f9b6598b Updated Projects (markdown) 2012-07-30 01:54:32 -07:00
jocelyn
600e403d91 Updated Projects (markdown) 2012-07-30 01:49:24 -07:00
jocelyn
65c9da1288 Updated Projects (markdown) 2012-07-27 09:23:12 -07:00
jocelyn
78975fbf1c Created Projects (markdown) 2012-07-27 07:54:06 -07:00
jocelyn
6a650c4a34 Updated Home (markdown) 2012-07-27 07:41:43 -07:00
jocelyn
73319dcd80 Updated Home (markdown) 2012-07-27 06:55:34 -07:00
Jocelyn Fiat
c62a4d2c49 Update master 2012-07-05 13:46:07 +03:00
Jocelyn Fiat
fce267984c Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-06-29 11:42:36 +02:00
Jocelyn Fiat
0665085eee updated to use WSF_STRING.value instead of obsolete WSF_STRING.string 2012-06-29 10:48:21 +02:00
Jocelyn Fiat
0a058882f5 Merge branch 'master' of https://github.com/eiffelhub/json 2012-06-29 10:36:53 +02:00
Jocelyn Fiat
480abdec51 Better code for tutorial example. 2012-06-29 10:27:23 +02:00
Jocelyn Fiat
b7be1cb0a2 Merge branch 'master' of https://github.com/EiffelWebFramework/EWF.wiki 2012-06-29 07:44:03 +02:00
jocelyn
9adbee9887 Updated EWSGI specification: difference in main proposals (markdown) 2012-06-28 22:39:41 -07:00
Jocelyn Fiat
6fa0d56465 cosmetic 2012-06-28 18:07:18 +02:00
Jocelyn Fiat
14367f9bde Merge branch 'master' of https://github.com/eiffelhub/json
Conflicts:
	draft/library/kernel/json_object.e
2012-06-28 17:55:48 +02:00
Jocelyn Fiat
e272fea9ea Merge branch 'master' of https://github.com/eiffelhub/json
Conflicts:
	draft/library/kernel/json_object.e
2012-06-28 17:28:31 +02:00
Jocelyn Fiat
1e86f53999 Added subtree merged in contrib\library\text\parser\json 2012-06-28 17:26:56 +02:00
Jocelyn Fiat
873f877530 Added TABLE_ITERABLE interface to JSON_OBJECT
Added JSON_OBJECT.replace (value, key)
2012-06-28 16:52:11 +02:00
Jocelyn Fiat
0dae7c6432 use svn export instead of svn checkout 2012-06-27 09:27:55 +02:00
Jocelyn Fiat
d539ea061a If library/cURL exists, do not copy cURL to contrib/library/network/cURL 2012-06-26 22:49:14 +02:00
Jocelyn Fiat
39aea2808e Merge branch 'master' of https://github.com/EiffelWebFramework/EWF.wiki 2012-06-22 15:57:35 +02:00
Jocelyn Fiat
9b13aa27dd 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-22 15:54:50 +02:00
jocelyn
675f58f42b Updated Community collaboration (markdown) 2012-06-20 12:56:55 -07:00
jocelyn
3d686fb50c Updated Task json (markdown) 2012-06-20 12:54:37 -07:00
jocelyn
ca6b4c468f Updated Tasks Roadmap (markdown) 2012-06-20 12:53:52 -07:00
Jocelyn Fiat
87c2074d2b Updated doc/wiki from branch 'master' of https://github.com/EiffelWebFramework/EWF.wiki
Conflicts:
	doc/wiki/Home.md
2012-06-20 14:43:39 +02:00
Jocelyn Fiat
756f4f6958 When installing, remove the folder "fonts" from the nino's example 2012-06-20 12:14:22 +02:00
Jocelyn Fiat
4d7e427d7a removed git submodule for contrib/ise_library/cURL (replaced by git subtree merged) 2012-06-20 09:56:45 +02:00
Jocelyn Fiat
5059f4eb1c fixed path in uninstall_ewf.bat 2012-06-20 09:56:06 +02:00
Jocelyn Fiat
2ac7633b80 Replaced git submodule by subtree merged in contrib/ise_library/cURL 2012-06-20 09:55:34 +02:00
Jocelyn Fiat
e8fa284c79 Replaced git submodule by subtree merged in contrib/library/text/parser/json 2012-06-20 09:52:07 +02:00
Jocelyn Fiat
51b602b42a Fixed typo in linux command line (should use -option instead of --option ) 2012-06-19 23:46:58 +02:00
Jocelyn Fiat
50146cebf5 Put examples under examples/web/ewf/... 2012-06-19 15:24:16 +02:00
Jocelyn Fiat
1d425d2947 Fixed typo 2012-06-19 14:56:24 +02:00
Jocelyn Fiat
74061f83b3 fixed typo in dos batch script 2012-06-19 14:32:52 +02:00
Jocelyn Fiat
692ff182ca IfECF_PATH_UPDATER is defined, let's use it to find ecf_updater executable 2012-06-19 02:36:54 -07:00
Jocelyn Fiat
89110e3568 put everything under contrib for now, eventually svn checkout missing parts 2012-06-18 09:24:07 -07:00
Jocelyn Fiat
8e9db583cc fixed not enought argument for internal shell function (typo..) 2012-06-18 07:22:15 -07:00
Jocelyn Fiat
1509d68ca6 Final version of the install scripts. 2012-06-18 16:11:01 +02:00
Jocelyn Fiat
3709dec5e9 Fixed typo and path separators usage in dos batch scripts 2012-06-18 14:57:52 +02:00
Jocelyn Fiat
ba7886f73d Install script does the same on Windows and Linux 2012-06-18 14:51:26 +02:00
Jocelyn Fiat
0217083d79 improved install_ewf.sh , and removed usage of deleted router.ecf 2012-06-18 02:24:47 -07:00
Jocelyn Fiat
1260ebf999 Updated install_ewf.sh 2012-06-15 14:02:49 -07:00
colin-adams
f6d64b42c6 Complete. 2012-06-15 08:38:30 -07:00
colin-adams
c9b11a6401 Updated Library conneg (markdown) 2012-06-15 08:09:39 -07:00
colin-adams
53a206694a Updated Library conneg (markdown) 2012-06-15 08:04:30 -07:00
colin-adams
74079325a0 Updated Library conneg (markdown) 2012-06-15 07:57:48 -07:00
colin-adams
d0e9438d46 Updated Library conneg (markdown) 2012-06-15 07:44:14 -07:00
Jocelyn Fiat
f3e1c524db Cleaned up compile_all.ini 2012-06-15 16:43:54 +02:00
Jocelyn Fiat
efeb372631 Updated draft library (consider it as draft quality) 2012-06-15 16:32:39 +02:00
Jocelyn Fiat
3389973a75 More flexible signature to allow detachable READABLE_STRING_8
Signed-off-by: Colin Adams <colinpauladams@gmail.com>
2012-06-15 16:28:01 +02:00
colin-adams
bd5985a99a Created Library conneg (markdown) 2012-06-15 07:10:36 -07:00
Jocelyn Fiat
5f3749e463 updated eel and eapml from more recent versions. 2012-06-15 14:57:12 +02:00
Jocelyn Fiat
0203e0fdc7 Moved eel and eapml under the contrib folder. 2012-06-15 14:24:23 +02:00
Jocelyn Fiat
12d56861e6 Fixing wrong path for ewsgi connector nino
(this was introduced recently when we moved folder location)
2012-06-15 14:15:44 +02:00
Jocelyn Fiat
23de980e57 added methods_head_get_post and methods_head_get 2012-06-15 10:54:53 +02:00
Jocelyn Fiat
ad5fed84ca Fixed previous commit where nino .ecf path was empty. 2012-06-15 10:53:32 +02:00
colin-adams
e2adc3cfbb Updated Tasks Roadmap (markdown) 2012-06-14 22:13:52 -07:00
colin-adams
51e54311b1 Updated Task json (markdown) 2012-06-14 22:13:02 -07:00
jocelyn
8a43e4ebb1 Updated Home (markdown) 2012-06-14 05:50:27 -07:00
Jocelyn Fiat
aa38cf787a Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-06-14 14:17:02 +02:00
Jocelyn Fiat
3702842337 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-14 13:35:08 +02:00
Jocelyn Fiat
2b730186a2 Fixing issue with HEAD and make_from_iterable 2012-06-14 12:28:52 +02:00
Jocelyn Fiat
dbd5e481b8 Merge remote-tracking branch 'ewf_wiki/master' 2012-06-13 23:10:04 +02:00
jocelyn
167c9403c0 Updated Home (markdown) 2012-06-13 14:08:17 -07:00
Jocelyn Fiat
b61cd7f512 Update master 2012-06-14 00:06:44 +03:00
Jocelyn Fiat
0a31cb38a3 Added "nino" subtree merged in contrib/library/network/server/nino 2012-06-13 22:45:50 +02:00
Jocelyn Fiat
db448001a1 Change structure of EWF, to follow better categorization 2012-06-13 22:32:17 +02:00
Jocelyn Fiat
3df1a26220 Better script, do not use default folder without asking. 2012-06-13 19:21:08 +02:00
Jocelyn Fiat
369a63c797 Added temporary scripts to install EWF on Windows 2012-06-13 18:51:19 +02:00
Jocelyn Fiat
52adff29aa updated script with official git repo 2012-06-11 15:20:41 +02:00
Jocelyn Fiat
8a58d62a7e 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-06-11 14:58:13 +02:00
Jocelyn Fiat
36ed6f525c Update examples/tutorial/step_4.wiki 2012-05-30 11:10:56 +03:00
Jocelyn Fiat
815b62153a Update examples/tutorial/step_4.wiki 2012-05-30 11:10:25 +03:00
Jocelyn Fiat
a9cf373443 Update examples/tutorial/step_1.wiki 2012-05-30 10:57:36 +03:00
Jocelyn Fiat
97b549cf83 Added precompile for step_3 2012-05-30 09:53:00 +02:00
Jocelyn Fiat
7a619fa7a5 Sync with json 2012-05-30 09:52:41 +02:00
Jocelyn Fiat
0d5011b03e 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-30 09:36:55 +02:00
Jocelyn Fiat
8dd0cb29fa Applied recent changes made on EWF
Updated copyright
2012-05-28 11:21:28 +02:00
Jocelyn Fiat
445a27ddf8 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-28 10:54:05 +02:00
Jocelyn Fiat
171be24d2a Better us OK status for redirection by default 2012-05-25 23:56:10 +02:00
Jocelyn Fiat
fb7d5054da Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework 2012-05-25 23:55:35 +02:00
Jocelyn Fiat
03bf467ee5 Added descriptions to WSF_RESPONSE about .send (mesg)
Fixed minor issues in other classes
2012-05-25 23:51:59 +02:00
Jocelyn Fiat
fd73af2cf8 Update examples/tutorial/step_3.wiki 2012-05-26 00:21:31 +03:00
Jocelyn Fiat
5504175d00 added eiffel code 2012-05-26 00:19:14 +03:00
Jocelyn Fiat
8283979a1e cosmetic 2012-05-26 00:17:27 +03:00
Jocelyn Fiat
3982c46ac4 Update examples/tutorial/step_3.wiki 2012-05-26 00:14:32 +03:00
Jocelyn Fiat
37a68dc778 Update examples/tutorial/step_3.wiki 2012-05-26 00:13:46 +03:00
Jocelyn Fiat
dafd8335d2 Update examples/tutorial/step_1.wiki 2012-05-26 00:10:20 +03:00
Jocelyn Fiat
4324b83cba fixed github wikitext usage 2012-05-26 00:08:28 +03:00
Jocelyn Fiat
b37a2bd17f Update examples/tutorial/step_4.wiki 2012-05-26 00:07:09 +03:00
Jocelyn Fiat
2a781b9081 Update examples/tutorial/step_3.wiki 2012-05-26 00:06:05 +03:00
Jocelyn Fiat
4bd8a24478 Update examples/tutorial/step_2.wiki 2012-05-26 00:05:06 +03:00
Jocelyn Fiat
f1e7639e6c Update examples/tutorial/step_1.wiki 2012-05-26 00:04:01 +03:00
Jocelyn Fiat
08347da643 Added more content to the tutorial 2012-05-25 22:55:15 +02:00
Jocelyn Fiat
6cff00428b 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
2012-05-25 20:17:55 +02:00
Jocelyn Fiat
aa6a1f2b8a Update examples/tutorial/README.wiki 2012-05-25 19:07:58 +03:00
Jocelyn Fiat
0f42eb2af0 Update examples/tutorial/README.wiki 2012-05-25 19:06:55 +03:00
Jocelyn Fiat
6d428cf078 added skeleton for tutorial_i text 2012-05-25 18:05:01 +02:00
Jocelyn Fiat
bd5238cf10 removed README.md 2012-05-25 17:57:13 +02:00
Jocelyn Fiat
e006b476af Removed to README.wiki 2012-05-25 17:56:19 +02:00
Jocelyn Fiat
f07fbbe450 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-05-25 17:49:54 +02:00
Jocelyn Fiat
00a88e98e5 Updated indexing notes
started tutorial
Sync
2012-05-25 17:47:43 +02:00
Jocelyn Fiat
f1498e2a07 http_client PUT uploaded data is not correctly implemented using libcurl
so for now, let's use a real temporary file to use the upload filename implementation
2012-05-23 23:17:50 +02:00
Jocelyn Fiat
5899da6197 fixed typo in curl.ecf 2012-05-21 17:25:53 +02:00
Berend de Boer
2ff3cff70f Do not use 307 but 302 response 2012-05-21 17:18:12 +02:00
Jocelyn Fiat
8fddfd6d22 Added presentation of EWF from march 2012 2012-05-15 19:05:16 +02:00
jocelyn
81da23c472 Updated Home (markdown) 2012-05-15 10:01:41 -07:00
Jocelyn Fiat
a3ae808a59 misc: script to checkout the source code with svn 2012-05-15 18:53:58 +02:00
Jocelyn Fiat
1d82a55e76 added some git tips in doc 2012-05-15 18:38:16 +02:00
Jocelyn Fiat
cf68ce6681 Added subtree merged in doc/wiki 2012-05-15 18:26:08 +02:00
Jocelyn Fiat
1d89a2bd9f Removed submodule doc/wiki 2012-05-15 18:25:09 +02:00
Jocelyn Fiat
ddd9eb646d removed commented lines 2012-05-14 22:07:48 +02:00
Jocelyn Fiat
ff97b041a9 updated ChangeLog 2012-05-14 21:41:43 +02:00
Jocelyn Fiat
c3c27c5027 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)
2012-05-14 18:12:28 +02:00
Jocelyn Fiat
64eebd32db Updated URI Template to follow official RFC6570 2012-05-14 18:11:12 +02:00
Jocelyn Fiat
278a71eaaf 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-07 23:16:52 +02:00
Jocelyn Fiat
e615026520 Reverted back to export upload_data and upload_filename to ANY (and related features) 2012-05-04 13:45:17 +02:00
Jocelyn Fiat
3a979915f5 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
2012-05-04 12:37:51 +02:00
Jocelyn Fiat
4508a76683 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-04 12:23:37 +02:00
Jocelyn Fiat
d40cc5d669 Fixed typo in .ecf .. curl instead of cURL 2012-05-03 18:46:04 +02:00
Jocelyn Fiat
3b27e093eb Added geant scripts to compile EWF 2012-05-03 18:29:46 +02:00
Jocelyn Fiat
eb04ac5405 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-03 16:21:42 +02:00
jfiat
c4e25a3091 Added {CURL_EXTERNALS}.slist_free_all
review#7828040

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@88674 8089f293-4706-0410-a29e-feb5c42a2edf
2012-05-02 19:58:42 +00:00
Jocelyn Fiat
31cf64f4ad do not use implicit conversion from HTTP_CONTENT_TYPE 2012-05-02 19:25:14 +02:00
Jocelyn Fiat
face4550f2 Fixed wrong signature should be READABLE_STRING_32 instead of _8 2012-05-02 19:22:39 +02:00
Jocelyn Fiat
ee0e3df05f Also removing the implicit conversion from STRING to HTTP_*_TYPE 2012-05-02 11:40:23 +02:00
Jocelyn Fiat
18ced46c99 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-05-02 11:35:53 +02:00
Jocelyn Fiat
7c95e514ad Added comments
Added `url' to compute the url from base_url, path and query parameters
2012-04-30 15:54:21 +02:00
Jocelyn Fiat
e304113984 Fixed error in URL encoding, according to the RFC3986, space should not be encoded with '+' but with percent encoding. 2012-04-30 15:53:44 +02:00
Jocelyn Fiat
07b3eddefe Fixed signature issue, the argument `name' should be READABLE_STRING_32 2012-04-30 15:51:10 +02:00
Jocelyn Fiat
dc2e535fe8 Code cleaning 2012-04-30 15:49:35 +02:00
Jocelyn Fiat
bd33aabd93 Added specific helper function related to `charset' parameter 2012-04-30 15:49:24 +02:00
Jocelyn Fiat
80a1c85844 added postcondition status_reason_phrase_unset to `set_status' 2012-04-27 08:52:58 +02:00
Jocelyn Fiat
9ba3caba12 cosmetic 2012-04-27 08:52:29 +02:00
Jocelyn Fiat
34c6288032 Fixed a last minute regression due to removal REQUEST.chunked_input 2012-04-13 17:19:14 +02:00
Jocelyn Fiat
21b03a05fd 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.
2012-04-13 16:40:19 +02:00
Jocelyn Fiat
0bd2d16c12 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-13 16:33:49 +02:00
Jocelyn Fiat
e6a727ee42 Fixed compilation of samples 2012-04-12 12:51:52 +02:00
Jocelyn Fiat
1403cc5c09 Fixed compilation 2012-04-12 12:25:34 +02:00
Jocelyn Fiat
3bbf356f19 Missing commit related to changes on WSF_ROUTER 2012-04-12 11:59:14 +02:00
Jocelyn Fiat
b541efcc8f 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-12 11:19:41 +02:00
Jocelyn Fiat
082def2b70 Merge branch 'master' of github.com:EiffelWebFramework/EWF 2012-04-06 15:52:03 +02:00
Jocelyn Fiat
79607600e6 updated to EiffelWebFramework/EWF 2012-04-06 16:27:22 +03:00
jocelyn
8870e19991 Updated Home (markdown) 2012-04-06 06:25:05 -07:00
Jocelyn Fiat
0b6b7f793c sync with json lib. 2012-04-06 11:31:57 +02:00
Jocelyn Fiat
badc2458c4 Sync with wiki 2012-04-06 11:29:07 +02:00
Jocelyn Fiat
d4208c59f3 Use https://github.com/EiffelWebFramework/EWF.git as master 2012-04-06 11:21:50 +02:00
Jocelyn Fiat
4bafa5b3c0 Added `transfered_content_length' to WSF_RESPONSE to provide the information to application
This can be used to build logs for instance.
2012-04-05 21:15:12 +02:00
Jocelyn Fiat
c89b19371e 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 21:14:10 +02:00
Jocelyn Fiat
10ebc12852 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-04-05 21:13:04 +02:00
Jocelyn Fiat
593e48ec5b Merge remote-tracking branch 'remotes/eiffelworld/master' 2012-04-02 09:29:53 +02:00
Jocelyn Fiat
11b15ec5b7 Merge pull request #10 from oligot/unneeded_precondition
Unneeded precondition
2012-04-02 00:28:23 -07:00
Olivier Ligot
ff713a42ab [REM] Remove unneeded precondition 2012-04-02 09:28:22 +02:00
Olivier Ligot
155c45be6c [IMP] Ignore *.swp files 2012-04-02 09:28:10 +02:00
Jocelyn Fiat
09fa1adaab removed obsolete message. 2012-04-02 09:27:59 +02:00
Olivier Ligot
425c276051 [REM] Remove unneeded precondition 2012-03-27 11:30:42 +02:00
Olivier Ligot
0040e4b0d0 [IMP] Ignore *.swp files 2012-03-27 11:29:33 +02:00
Olivier Ligot
b862065c04 Merge branch 'master', remote branch 'upstream/master' 2012-03-26 17:19:02 +02:00
Jocelyn Fiat
874677ab7a Renamed same_media_type as same_simple_type
Added comments
2012-03-23 19:00:49 +01:00
Jocelyn Fiat
ed200b93dd updated tests.ecf 2012-03-23 18:40:29 +01:00
Jocelyn Fiat
bcccfb22ed 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
2012-03-23 18:39:19 +01:00
Jocelyn Fiat
5c98d7ba4e Use media_type as replacement for type_and_subtype_string in HTTP_CONTENT_TYPE 2012-03-23 16:49:13 +01:00
Jocelyn Fiat
40c6aff423 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-23 16:40:13 +01:00
Jocelyn Fiat
ac9cbb0bd2 in WSF_RESPONSE, put_header' now call put_header_text'
Removed unused local variable
2012-03-21 14:49:09 +01:00
Jocelyn Fiat
95c3bbf6e5 Fixed very bad mistake where no Result was ever set for WSF_REQUEST.item (..) 2012-03-21 14:43:32 +01:00
Jocelyn Fiat
b955912dc2 fixed compilation issue (typo) 2012-03-20 16:17:43 +01:00
Jocelyn Fiat
50223b12f7 Do not try to compile_all in "dev" folder 2012-03-20 16:15:16 +01:00
Jocelyn Fiat
6c7ba93062 Reverted a previous change, we should not truncated Content-Type after ;
In the case of multipart/form-data  the parameter "boundary=" is essential
2012-03-20 14:35:04 +01:00
Jocelyn Fiat
743f26c376 Use WSF_DEFAULT_SERVICE for the test echo server 2012-03-20 12:18:44 +01:00
Jocelyn Fiat
d256ec3944 Fixing compilation of specific example using the WGI connector directly 2012-03-20 12:15:45 +01:00
Jocelyn Fiat
482f8e41e7 Added WSF_SERVICE.to_wgi_service to ease direct integration with existing WGI components 2012-03-20 11:40:13 +01:00
Jocelyn Fiat
9eef812795 Relaxed access to `send_to', now it is exported again to avoid breaking existing code. 2012-03-20 11:38:44 +01:00
Jocelyn Fiat
86fcaa2835 remove unused local variable 2012-03-20 11:15:14 +01:00
Jocelyn Fiat
897aeb3132 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
2012-03-20 11:12:18 +01:00
Jocelyn Fiat
48acdea73c Added HTTP_HEADER.(put|add)_content_type_with_parameters (...) 2012-03-20 11:08:52 +01:00
Jocelyn Fiat
cbaae12156 removed obsolete 2012-03-20 10:30:04 +01:00
Jocelyn Fiat
8344607eb6 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
2012-03-20 10:29:55 +01:00
Jocelyn Fiat
71d5dc4795 Moved mime handler classes under wsf/src/mime/ 2012-03-20 08:38:38 +01:00
Jocelyn Fiat
3f0b745ecc removed unwanted rescue clause 2012-03-19 15:20:29 +01:00
Jocelyn Fiat
3432e2d8b2 Updating EWSGI specification classes 2012-03-19 15:06:50 +01:00
Jocelyn Fiat
fea0f115a0 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 14:52:12 +01:00
Berend de Boer
84a12447db Avoid another indirection. 2012-03-19 14:02:13 +01:00
Berend de Boer
876f9e02b7 status must be set, else WGI_SERVICE.execute will report the
postcondition violation.

Conflicts:

	library/server/wsf/router/wsf_handler.e
2012-03-19 13:58:17 +01:00
Berend de Boer
e5323dd208 Minor code cleanup/typo fix. 2012-03-19 13:54:48 +01:00
Berend de Boer
77834a3dd8 Move wgi_service spec to its own directory else I get a class
conflicts with compile_ise.ecf generated by gexace.
2012-03-19 13:54:34 +01:00
Jocelyn Fiat
4906345a62 Improved comment in WSF_RESPONSE.put_response (..)
Added WSF_REDIRECTION_RESPONSE class
2012-03-19 12:32:12 +01:00
Jocelyn Fiat
487487ad44 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.
2012-03-19 12:04:46 +01:00
Jocelyn Fiat
ef5ba19c46 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
2012-03-19 10:21:29 +01:00
Jocelyn Fiat
b05ff01262 Use local variable to speed up access to `input' 2012-03-19 10:12:06 +01:00
Jocelyn Fiat
9f1940c46d Applied wsf_extension creation, and classes moved from wsf to wsf_extension 2012-03-16 15:17:22 +01:00
Jocelyn Fiat
f69ff42564 Created wsf_extension, and moved some classes from wsf to wsf_extension
WSF_HANDLER_HELPER
   WSF_RESOURCE_HANDLER_HELPER
   WSF_HANDLER_ROUTES_RECORDER
2012-03-16 14:12:02 +01:00
Jocelyn Fiat
eb3e9f2186 applied removal of HTTP_HEADER.put_status (..) 2012-03-16 13:53:22 +01:00
Jocelyn Fiat
03b10bdc14 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
2012-03-16 13:35:52 +01:00
Jocelyn Fiat
46eb92ac37 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-16 09:49:41 +01:00
Jocelyn Fiat
25218996e0 Fixed compilation of draft/library/server/request/rest/tests/..
Note the "rest" library will not be maintained since this is not REST.
2012-03-13 18:41:32 +01:00
jfiat
081392529c 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

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@88401 8089f293-4706-0410-a29e-feb5c42a2edf
2012-03-13 17:36:43 +00:00
Jocelyn Fiat
68dbbdea9f precise that library/server/request/router is now part of "wsf" library and not anymore independant library. 2012-03-13 18:09:16 +01:00
Jocelyn Fiat
5abc79b7c3 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-03-13 18:07:28 +01:00
Jocelyn Fiat
e85213689e TCP_STREAM_SOCKET: added try_ready_for_reading' which is the same as ready_for_reading' but without any timeout 2012-03-13 17:38:33 +01:00
Jocelyn Fiat
c5fe539acb use https:// url for git submodules 2012-02-29 17:23:34 +01:00
Jocelyn Fiat
ac3e969b3c Added assertions to catch if route mapping does not already exists 2012-02-29 11:27:46 +01:00
Jocelyn Fiat
98f2efbd68 Merging changes from Javier
Updated restbucksCRUD example, and related class in wsf/router
2012-02-28 09:23:09 +01:00
Jocelyn Fiat
7314e92fe6 Synchronized with nino and json library 2012-02-28 09:20:08 +01:00
jvelilla
ab38345c25 Update readme.txt 2012-02-24 08:54:27 -02:00
jfiat
c873d62efa added JSON_OBJECT.is_empty: BOOLEAN 2012-02-21 10:07:58 +00:00
jvelilla
468b2851be 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-17 08:48:27 -03:00
jvelilla
f1fe5464c6 Merge branch 'master' of git://github.com/jocelyn/Eiffel-Web-Framework 2012-02-17 07:28:57 -03:00
Jocelyn Fiat
d621987020 Minor correction, to avoid returning 200 as status code, when the client can not connect 2012-02-16 10:32:24 +01:00
Jocelyn Fiat
e541fdcb0c fixed compilation 2012-02-15 12:36:57 +01:00
Jocelyn Fiat
5950d768c9 sync with cURL library 2012-02-15 11:58:32 +01:00
Jocelyn Fiat
413fdaf6cd Fixed error visitor due to recent signature changes 2012-02-15 11:33:39 +01:00
Jocelyn Fiat
9138ffedfb renamed (add|remove)_synchronized_handler as (add|remove)_synchronization 2012-02-15 11:07:12 +01:00
Jocelyn Fiat
72cc05532c Removed tests target from encoder(-safe).ecf
(now there is a tests-safe.ecf in folder tests)
2012-02-15 11:04:42 +01:00
Jocelyn Fiat
145b129b28 Fixed ERROR_HANDLER.destroy
Fixed and export ERROR_HANDLER.remove_synchronized_handler
Added comments
Added associated autotests
2012-02-15 11:03:30 +01:00
Jocelyn Fiat
fbec89f354 Better signature for encoders
Split library .ecf and the autotest .ecf
2012-02-14 18:03:42 +01:00
Jocelyn Fiat
f59d5cac32 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 ("..")
2012-02-14 18:02:14 +01:00
Jocelyn Fiat
4bb8a71c1b Added DEBUG_OUTPUT to ERROR, since this is convenient during debugging 2012-02-14 18:01:17 +01:00
Jocelyn Fiat
dd6b74326e Added notion of synchronization between error handler
this is convenient to integrate two components using their own ERROR_HANDLER (not sharing the same object)
2012-02-14 12:57:01 +01:00
Jocelyn Fiat
e52cd6b352 use WSF_PAGE_RESPONSE, instead of reimplementing it ourself 2012-02-14 10:20:15 +01:00
larryl
ad2a498fc0 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



git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@88299 8089f293-4706-0410-a29e-feb5c42a2edf
2012-02-14 02:52:03 +00:00
Jocelyn Fiat
537bd8241f added a JSON encoder test case 2012-02-13 14:38:13 +01:00
Jocelyn Fiat
040c1d1c10 Merge pull request #9 from oligot/fix-libfcgi-location
[FIX] libfcgi.so location
2012-02-13 03:21:29 -08:00
Olivier Ligot
f3c779cf6e [FIX] libfcgi.so location
On Ubuntu 10.04 LTS, libfcgi.so is in /usr/lib instead of /usr/local/lib
2012-02-10 14:01:04 +01:00
Jocelyn Fiat
6cf35e90c6 added a case in test_json_encoder 2012-02-08 21:36:49 +01:00
unknown
497fe03d38 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 21:32:25 +01:00
Jocelyn Fiat
ca3a520bb9 fixed http_client tests 2012-02-08 16:36:54 +01:00
jvelilla
3c755019aa Updated content 2012-02-08 08:47:39 -03:00
Jocelyn Fiat
3a9b67c8ad Better code to test similar functions but with chunked input 2012-02-07 16:05:19 +01:00
Jocelyn Fiat
e21da4a591 Improved the WSF_PAGE_RESPONSE to be more flexible and allow to change some values as expected. 2012-02-07 15:49:02 +01:00
Jocelyn Fiat
69bc4d568c Added support for chunked input data (see Transfer-Encoding: chunked) 2012-02-07 15:47:55 +01:00
Jocelyn Fiat
cf8d25c4e5 Added HTTP_HEADER.append_header_object and append_array.
This is helpful to "merge" two HTTP_HEADER and provide user friendly features
2012-02-07 15:45:44 +01:00
Jocelyn Fiat
2b9ca86501 Added proxy, at least to make it is possible to use http://fiddler2.com/ to inspect the traffic. 2012-02-07 15:44:45 +01:00
Jocelyn Fiat
2f43660628 Merge branch 'master' of https://github.com/jvelilla/Eiffel-Web-Framework 2012-02-07 15:13:59 +01:00
Jocelyn Fiat
d8476edf36 Fixed wrong code for postcondition on HTTP_HEADER.string
Patch provided by Paul-G.Crismer
2012-02-01 16:53:24 +01:00
Jocelyn Fiat
67e6b460b3 removed unwanted set_status_code, since we already use put_header to set the status code. 2012-02-01 16:05:30 +01:00
Jocelyn Fiat
962154fc81 Eventually fixing trouble with c_strlen being over capacity
(added this for testing, and while waiting a fix from EiffelcURL)
2012-02-01 11:57:42 +01:00
Jocelyn Fiat
645b35590b Improved redirect_now_custom to allow custom status code, custom header, and custom content 2012-02-01 10:57:52 +01:00
Jocelyn Fiat
a1354136fa 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
2012-01-31 17:57:59 +01:00
Jocelyn Fiat
945ef79857 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-31 12:12:41 +01:00
Jocelyn Fiat
2c4df29877 Make sure to return a response
Added precondition to check URI_TEMPLATE is valid
2012-01-25 16:27:22 +01:00
Jocelyn Fiat
e6687c7791 Fixed wrong assertion, status_committed instead of status_set 2012-01-24 16:47:12 +01:00
Jocelyn Fiat
754d3f670c Fixed issue with WSF_FILE_RESPONSE not setting the status code
Added Last-Modified
2012-01-23 18:20:25 +01:00
Jocelyn Fiat
8e420de8ec Fixed wrong code for postcondition in unset_orig_path_info 2012-01-23 15:32:11 +01:00
Jocelyn Fiat
6dc1c0d2b0 Removed most of the "retry" in rescue clauses, since it was hidding critical issue.
This should be the choice of the application to "retry" on exception, otherwise let the framework handle this in the lower part.

Better handling of response termination (alias commit)
Added the notion of "status_committed"
2012-01-23 15:31:34 +01:00
Jocelyn Fiat
80d68699b1 added "conversion" to ease the use of HTTP_HEADER 2012-01-23 15:28:06 +01:00
Jocelyn Fiat
fcdf4e456e fixed compilation (was not up to date with tests.ecf) 2012-01-20 20:04:56 +01:00
Jocelyn Fiat
c92c2a91b4 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, ...
2012-01-20 18:55:03 +01:00
manus
1ab3832685 Removed the ECF bounds license file and replaced them with `license.lic' files.
Made sure all license are the Eiffel Forum License 2.

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@88213 8089f293-4706-0410-a29e-feb5c42a2edf
2012-01-20 16:35:05 +00:00
Jocelyn Fiat
da9fa4ecc2 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 15:37:04 +01:00
Jocelyn Fiat
abdd68863d 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-20 15:35:03 +01:00
Jocelyn Fiat
83a8ad3879 separate library .ecf and tests .ecf
merged tests .ecf for draft 05 and current implementation
2012-01-19 14:34:04 +01:00
Jocelyn Fiat
1b55b09b64 Fixed WSF_REQUEST.script_url (..) for clean path
Added related autotests
2012-01-19 10:25:53 +01:00
Jocelyn Fiat
4cf3393a13 Don't forget to put Content-Length: 0 for redirect without any content 2012-01-17 17:37:26 +01:00
Jocelyn Fiat
4486df14cc export handler from REQUEST_ROUTER 2012-01-17 07:51:26 -08:00
Jocelyn Fiat
60574ee85f REQUEST_ROUTER now inherit from ITERABLE [..] 2012-01-17 16:35:52 +01:00
Jocelyn Fiat
7a6c51e47e Send the Status code, as an header line Status: code reason 2012-01-17 16:34:48 +01:00
Jocelyn Fiat
d8c420c4b7 use READABLE_STRING_8 instead of STRING_8 2012-01-17 16:33:40 +01:00
Jocelyn Fiat
790aa40591 According to http://www.fastcgi.com/docs/faq.html#httpstatus
send the Status code, as an header line  Status: code reason
2012-01-17 13:49:04 +01:00
Jocelyn Fiat
e506397406 Do not send any Status line back to the FastCGI client 2012-01-16 13:49:38 +01:00
Jocelyn Fiat
434f031680 Synchronized with ejson library
Cleaned JSON_ENCODER
2012-01-13 19:04:26 +01:00
jfiat
a6c52c0a7e Renamed JSON_STRING.unescaped_string as unescaped_string_8
+ code cleaning
2012-01-13 17:57:49 +00:00
jfiat
d67e01eea6 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-13 17:26:23 +00:00
Jocelyn Fiat
e36533bc99 Added JSON_ENCODER 2012-01-12 10:38:43 +01:00
Jocelyn Fiat
d90ecbd5fe removed obsolete call on WSF_RESPONSE.write_..' by using the up-to-date WSF_RESPONSE.put_..' 2012-01-09 10:21:35 +01:00
Jocelyn Fiat
20281bc922 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
2012-01-06 18:27:52 +01:00
jvelilla
6b3a2d3b43 Update examples/restbucksCRUD/readme.md 2011-12-21 15:40:03 -02:00
Jocelyn Fiat
83346c92a7 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
2011-12-18 12:57:24 +01:00
Jocelyn Fiat
6b50ab8c55 applied write_ as put_ renaming to examples 2011-12-18 12:55:42 +01:00
Jocelyn Fiat
c8efa04147 Use put_ instead of write_ 2011-12-15 23:52:53 +01:00
Jocelyn Fiat
37860f43b5 various minor changes 2011-12-15 23:38:34 +01:00
Jocelyn Fiat
65a998cec3 use /usr/lib/libfcgi.so instead of /usr/local/lib/libfcgi.so 2011-12-15 20:10:31 +01:00
Jocelyn Fiat
7207a021be Applied renaming from write_ to put_ 2011-12-15 19:34:20 +01:00
Jocelyn Fiat
32373addfa Renamed write_ feature as put_ 2011-12-15 19:04:26 +01:00
Jocelyn Fiat
e16f03b1c2 Fixed stupid mistake in {WGI_NINO_INPUT_SREEAM}.end_of_input 2011-12-15 15:36:47 +01:00
Jocelyn Fiat
1698a06ea0 Fixed typo and missing uri_template reference for draft rest library 2011-12-15 14:40:43 +01:00
Jocelyn Fiat
da3594db50 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
2011-12-15 14:10:52 +01:00
Jocelyn Fiat
bfa620eee3 Made DEFAULT_SERVICE_LAUNCHER more flexible for the user. 2011-12-15 13:30:19 +01:00
jvelilla
1423412f31 Update read_trailer feature. 2011-12-15 09:18:37 -03:00
jvelilla
0f51925ec1 Initial implementation of wgi_chunked_input_stream
as a wrapper of wgi_input_stream
2011-12-15 08:53:50 -03:00
Jocelyn Fiat
b6784ee35c 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 ...)
2011-12-14 16:34:01 +01:00
Jocelyn Fiat
ab5b43d8ef Forgot to add make_and_launch_with_options to the creation procedures 2011-12-14 15:04:29 +01:00
Jocelyn Fiat
c7366615cf 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-14 14:44:06 +01:00
Jocelyn Fiat
b60c41ee1b Updated readme on how to get source code 2011-12-13 11:43:24 +01:00
Jocelyn Fiat
f9dfeb0034 added head and bottom value in WSF_FILE_RESPONSE, to enable the user to set a head and bottom part easily 2011-12-13 10:35:49 +01:00
Jocelyn Fiat
5e35bc59a9 avoid infinite rescue due to internal error or user code not dealing well with socket disconnection 2011-12-12 21:19:45 +01:00
Jocelyn Fiat
2ed6d92e53 Removed dotnet target for now 2011-12-12 21:18:35 +01:00
Jocelyn Fiat
33d3071cad Merge branch 'master' of github.com:Eiffel-World/Eiffel-Web-Framework 2011-12-12 18:57:09 +01:00
Jocelyn Fiat
35dde23976 Fixed http_client autotest code 2011-12-12 18:50:40 +01:00
Jocelyn Fiat
390c05b056 Break inheritance from WGI_RESPONSE, since it is not flexible for future improvement. 2011-12-12 18:24:46 +01:00
Jocelyn Fiat
011f8746d6 Fixed HTTP client callers 2011-12-12 18:17:39 +01:00
Jocelyn Fiat
0335226e8b Renamed DEFAULT_SERVICE as DEFAULT_SERVICE_LAUNCHER 2011-12-12 18:17:27 +01:00
Jocelyn Fiat
68e4ac9a8f Fixed WSF_FILE_RESPONSE
and added WSF_FORCE_DOWNLOAD_RESPONSE
2011-12-12 16:20:06 +01:00
Jocelyn Fiat
f6b293d4ae Merge changes from Javier
- update on RESTbuck examples
- new example
- fixed bad typo in WSF_REQUEST

Reverted some changes such as
- http_client_response: keep the headers as a list to handle multiple message-value with same message-name

Fixed simple and simple_file example
Improved HTTP_HEADER

Changed libcurl implementation for http client
- now the header from the context really overwrite any of the session headers
- better design which is more strict, and remove any doubt about context's header usage
2011-12-12 16:03:38 +01:00
Jocelyn Fiat
89572b4f33 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-12 11:16:15 +01:00
Jocelyn Fiat
8b4f774bab Handling bad incoming request (keep a check assertion to help during debugging period) 2011-12-12 10:44:50 +01:00
jvelilla
52e6944f37 Merge branch 'master' of github.com:jvelilla/Eiffel-Web-Framework 2011-12-10 18:06:39 -03:00
jvelilla
bf056154d8 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
2011-12-10 18:05:41 -03:00
jvelilla
a3c50956f1 Update examples/restbucksCRUD/readme.md 2011-12-10 11:02:20 -02:00
jvelilla
0d67533c83 Merge branch 'master' of github.com:jvelilla/Eiffel-Web-Framework 2011-12-09 21:14:18 -03:00
jvelilla
c0c206e9ae 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.
2011-12-09 21:11:16 -03:00
jvelilla
36601fd3a4 Update examples/restbucksCRUD/readme.md 2011-12-09 19:16:07 -02:00
jvelilla
9a85c24c0d Update examples/restbucksCRUD/readme.md 2011-12-09 19:15:33 -02:00
jvelilla
5ef19021eb Update examples/restbucksCRUD/readme.md 2011-12-09 19:10:09 -02:00
jvelilla
7495d0e6a7 Update examples/restbucksCRUD/readme.md 2011-12-09 19:00:58 -02:00
jvelilla
f27c1f97a3 Update examples/restbucksCRUD/readme.md 2011-12-09 18:59:23 -02:00
jvelilla
b96029a750 Update examples/restbucksCRUD/readme.md 2011-12-09 18:56:49 -02:00
jvelilla
9ef10c749a Update examples/restbucksCRUD/readme.md 2011-12-09 18:45:50 -02:00
jvelilla
0aa3d81b22 Update examples/restbucksCRUD/readme.md 2011-12-09 18:44:21 -02:00
jvelilla
5d17b0dd29 Update examples/restbucksCRUD/readme.md 2011-12-09 17:24:01 -02:00
jvelilla
5e2c2af18a Update examples/restbucksCRUD/readme.md 2011-12-09 11:57:47 -02:00
jvelilla
de157be6f1 Update examples/restbucksCRUD/readme.md 2011-12-09 11:57:04 -02:00
jvelilla
f601ae1c8b Update examples/restbucksCRUD/readme.md 2011-12-09 11:52:18 -02:00
jvelilla
f6f94add80 Update examples/restbucksCRUD/readme.md 2011-12-09 11:43:58 -02:00
jvelilla
a70e75f729 Update examples/restbucksCRUD/readme.md 2011-12-09 11:41:58 -02:00
jvelilla
2dd43ad829 Update examples/restbucksCRUD/readme.md 2011-12-09 11:02:31 -02:00
jvelilla
108396bd91 Update examples/restbucksCRUD/readme.md 2011-12-09 10:56:58 -02:00
jvelilla
e9b7fc4c93 Update examples/restbucksCRUD/readme.md 2011-12-08 20:28:14 -02:00
jvelilla
0dd2812574 Updated documentation 2011-12-08 20:04:39 -02:00
jvelilla
d961544b8b Updated restbucksCRUD documentation 2011-12-08 18:48:50 -03:00
jvelilla
3313e9cf81 Added basic two basic examples, refactor rename restbucks
to restbucksCRUD
2011-12-08 18:43:29 -03:00
jvelilla
39b5a70979 Sync Jocelyn repo 2011-12-07 07:22:51 -03:00
Jocelyn Fiat
379e806166 Update README.md 2011-12-03 14:55:55 +01:00
Jocelyn Fiat
c1e08a1bdc Update README.md 2011-12-03 14:55:28 +01:00
Jocelyn Fiat
af21520e5d Update README.md 2011-12-03 14:42:09 +01:00
Jocelyn Fiat
effc6ba81d fixed markdown syntax 2011-12-03 14:40:54 +01:00
Jocelyn Fiat
019fb539ae Remove any useless library include from this .ecf
we just need default_"connector", router, wsf and http
2011-12-02 13:50:39 +01:00
Jocelyn Fiat
03938b43c3 Fixed compilation issue for CGI and libFCGI connector
due to recent changes in interface  (use READABLE_STRING_8)
2011-12-02 12:05:07 +01:00
Jocelyn Fiat
e70d67aed5 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
2011-12-01 19:12:26 +01:00
Jocelyn Fiat
de38f46d1d fixed remaining issue or useless code to set http environment variable 2011-12-01 18:41:51 +01:00
Jocelyn Fiat
8c79a64f0c Fixed stupid error where we were concatenating ... value by error 2011-12-01 18:38:26 +01:00
Jocelyn Fiat
fff7a5c96d Added WSF_RESPONSE.write_chunk (s: ?READABLE_STRING_8)
to help user sending chunk with "Transfer-Encoding: chunked"
2011-12-01 18:22:47 +01:00
Jocelyn Fiat
1b92403045 Synchronized with Nino 2011-12-01 17:59:35 +01:00
Jocelyn Fiat
59505ccdc4 various renaming and preparation to merge Thread and SCOOP implementation of Eiffel Web Nino 2011-12-01 17:58:01 +01:00
Jocelyn Fiat
8ae4a30ee8 Fixed WSF_RESPONSE.redirect* features 2011-12-01 17:52:31 +01:00
Jocelyn Fiat
8ffe2a8f73 sync with Nino, call to put_readable_string_8 2011-12-01 17:52:00 +01:00
Jocelyn Fiat
800815c8dd Added put_readable_string_8 to avoid call to .as_string_8 2011-12-01 17:48:15 +01:00
Jocelyn Fiat
769f2bb5a8 Synchronized with EiffelWebNino 2011-12-01 15:28:38 +01:00
Jocelyn Fiat
483f065ef1 relative path for README link 2011-12-01 15:13:15 +01:00
jvelilla
8ff055803d Update library/protocol/CONNEG/README.md 2011-12-01 09:38:13 -02:00
jvelilla
3b30f4b994 Update library/protocol/CONNEG/README.md 2011-12-01 09:34:11 -02:00
jvelilla
f71bbc07e8 Updated Conneg library, added test cases 2011-12-01 08:13:42 -03:00
jvelilla
faafa894c2 Merge pull request #9 from jocelyn/master
Removed main thread and removed shared configuration class
2011-12-01 01:23:35 -08:00
Jocelyn Fiat
89cd5a3b44 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 19:05:16 +01:00
jvelilla
9b9bc1f190 Fixed minor issue, added test cases to check language negotiation. 2011-11-30 08:56:13 -03:00
jvelilla
6feaf5757f Update conneg library and test cases 2011-11-30 07:15:17 -03:00
jfiat
2b7043f670 Fixed bug#18008: Function {CURL_OPT_CONSTANTS}.libcurl_version has wrong type
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@88050 8089f293-4706-0410-a29e-feb5c42a2edf
2011-11-28 08:21:54 +00:00
Jocelyn Fiat
6f4ec89404 Fixed example due to recent interface changes 2011-11-25 20:44:32 +01:00
Jocelyn Fiat
cdfc6851e7 - (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
2011-11-25 20:43:04 +01:00
Jocelyn Fiat
e0ec84611e Applied recent renaming from WGI_RESPONSE_BUFFER as WGI_RESPONSE 2011-11-25 19:21:45 +01:00
Jocelyn Fiat
2234d3712b updated WGI specification 2011-11-25 18:25:50 +01:00
Jocelyn Fiat
c89ccfa768 Added missing wgi_connector 2011-11-25 16:27:46 +01:00
Jocelyn Fiat
1a88388ffe added "redirect" helper feature to WSF_RESPONSE 2011-11-25 16:24:55 +01:00
Jocelyn Fiat
5eab38778a Added `{WGI_REQUEST}.wgi_*' function to WSF_REQUEST 2011-11-25 16:24:26 +01:00
Jocelyn Fiat
9d457bb978 rename application' as service' 2011-11-25 16:22:44 +01:00
Jocelyn Fiat
42be0b2a4e Use HTTP_HEADER instead of WSF_HEADER
(WSF_HEADER is kept for convenience and existing code)
2011-11-25 15:53:15 +01:00
Jocelyn Fiat
48d4d26cda better script to check compilation and tests 2011-11-25 14:52:00 +01:00
Jocelyn Fiat
182749d010 Moved implementation of WSF_HEADER to HTTP_HEADER in the http library 2011-11-25 14:51:46 +01:00
Jocelyn Fiat
fd0912904c 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-25 14:39:48 +01:00
Jocelyn Fiat
51b912c4f8 Merge branch 'master' of https://github.com/jvelilla/Eiffel-Web-Framework.wiki 2011-11-25 13:18:46 +01:00
jvelilla
7dd9a30740 Updated HTTP Library Features (markdown) 2011-11-24 09:38:40 -08:00
jvelilla
92c58bbbe0 Updated HTTP Library Features (markdown) 2011-11-24 09:37:45 -08:00
jvelilla
f4b621ba08 Updated HTTP Library Features (markdown) 2011-11-24 09:34:35 -08:00
jvelilla
dc0c90ab46 Updated HTTP Library Features (markdown) 2011-11-24 09:32:07 -08:00
jvelilla
fdef9b0c8f Updated HTTP Library Features (markdown) 2011-11-24 09:23:42 -08:00
jvelilla
40ec2f6419 Created HTTP client library (markdown) 2011-11-24 09:22:12 -08:00
Jocelyn Fiat
3032b91ff7 Fixed sample example config file after recent location change for "rest" lib 2011-11-23 18:36:56 +01:00
Jocelyn Fiat
772b88f257 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)
2011-11-23 16:35:22 +01:00
Jocelyn Fiat
a1cc2d1d1a fixed rest(-safe).ecf due to recent location change 2011-11-23 15:37:01 +01:00
Jocelyn Fiat
9f90bf56a5 Merge branch 'master' of github.com:Eiffel-World/Eiffel-Web-Framework 2011-11-23 15:31:47 +01:00
Jocelyn Fiat
dbea0e509b Updated README.md in relation with "rest" lib relocation 2011-11-23 15:27:51 +01:00
Jocelyn Fiat
a3f28e3945 Move "rest" library under "draft/..." since it is more an experiment rather than a real REST library 2011-11-23 15:18:35 +01:00
Jocelyn Fiat
379a6193e9 Update draft/README.md 2011-11-21 18:28:33 +01:00
Jocelyn Fiat
03d9c3785c updated Eiffel libfcgi README file 2011-11-21 17:43:02 +01:00
Jocelyn Fiat
612915c918 Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework
Conflicts:
	library/server/libfcgi/Clib/README.md
2011-11-21 17:33:34 +01:00
Jocelyn Fiat
ff967d6332 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
2011-11-21 17:07:38 +01:00
Jocelyn Fiat
8d75a04068 Added scripts to help building the libfcgi.dll and .lib from modified source of libfcgi 2011-11-21 16:38:36 +01:00
jfiat
1b446caa27 Removing autotest dotnet target, since Autotest does not support .Net platform for now 2011-11-21 13:54:50 +00:00
Jocelyn Fiat
202ad2861b updated README to apply 'ext' renamed as 'contrib' 2011-11-21 14:30:03 +01:00
jfiat
24b1be7482 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-21 09:20:46 +00:00
Jocelyn Fiat
44857d28ec fixed compilation for tests.ecf 2011-11-18 14:56:02 +01:00
Jocelyn Fiat
e3597c0f3b fixed typo 2011-11-18 14:18:30 +01:00
Jocelyn Fiat
0cce4d8244 Updated "draft" folder which contain potential future addition to EWF 2011-11-18 14:18:22 +01:00
Jocelyn Fiat
aab910ab64 Added "draft" folder to contain potential future addition to EWF 2011-11-18 13:56:07 +01:00
Jocelyn Fiat
257ede7586 restructured CONNEG library
fixed various issue in .ecf files
2011-11-18 11:14:30 +01:00
jvelilla
b58e4e19e1 Initial import CONNEG library, support server side
content negotiation.
2011-11-18 10:19:54 +01:00
Jocelyn Fiat
6ec37c90a2 Rename "ext" as "contrib" in compile_all.ini as well
no need to test the code coming from other projects.
2011-11-17 16:03:29 +01:00
Jocelyn Fiat
49c3e8e789 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-17 15:50:30 +01:00
Jocelyn Fiat
cc11debf08 handle last run failure 2011-11-16 16:18:27 +01:00
Jocelyn Fiat
b71a22d040 Added request method PATCH even if not really used for now, it might in the future 2011-11-16 15:52:00 +01:00
Jocelyn Fiat
7022206a73 Do not print command during script execution 2011-11-16 13:10:35 +01:00
Jocelyn Fiat
b715d674ca fixed indentation in python script 2011-11-16 09:00:23 +01:00
Jocelyn Fiat
02f5bdd801 Added information output to run_CI_tests.py 2011-11-16 08:57:02 +01:00
Jocelyn Fiat
203d51a97e updated run_CI_tests.py 2011-11-16 08:48:24 +01:00
Jocelyn Fiat
733296e71e updated run_CI_tests.py 2011-11-16 08:42:08 +01:00
Jocelyn Fiat
0a497b9a4d updated run_CI_tests.py 2011-11-16 08:34:00 +01:00
Jocelyn Fiat
4ed91a91a2 updated run_CI_tests.py 2011-11-16 07:51:04 +01:00
Jocelyn Fiat
a76eb75267 removed unused local variables 2011-11-16 07:25:29 +01:00
Jocelyn Fiat
2c94a98730 added a python script to be use inside jenkins CI server
(experimental for now)
2011-11-16 07:25:15 +01:00
Jocelyn Fiat
cc960310e9 cosmetic 2011-11-14 19:06:31 +01:00
Jocelyn Fiat
d9daac67d9 cosmetics 2011-11-14 19:05:48 +01:00
Jocelyn Fiat
955f73dee9 Added various README.md (using the markdown syntax) 2011-11-14 19:00:00 +01:00
Jocelyn Fiat
137ed3888c updated README with links to sub READM.md 2011-11-14 18:46:37 +01:00
Jocelyn Fiat
8382e8f134 sync with Eiffel Web Nino 2011-11-14 16:39:26 +01:00
Jocelyn Fiat
713978d70f Using `is_verbose' instead of debug clause "nino" 2011-11-14 16:32:28 +01:00
Jocelyn Fiat
b78c44f4a1 Applied the removal of HTTP_INPUT_STREAM and HTTP_OUTPUT_STREAM to the example. 2011-11-14 16:32:09 +01:00
Jocelyn Fiat
0b7ea3c427 Added default WSF_APPLICATION for libfcgi connector 2011-11-14 16:27:55 +01:00
Jocelyn Fiat
1e7b370859 code removal 2011-11-14 16:26:31 +01:00
Jocelyn Fiat
8c02b0d546 Updated libfcgi source code for Windows AND Linux.
Cleaning some code and feature clauses.
2011-11-14 15:44:10 +01:00
Jocelyn Fiat
13b09adc8c Changed the WGI_INPUT_STREAM and WGI_OUTPUT_STREAM interfaces
main changes for existing code  `read_stream' is renamed `read_string'
2011-11-14 14:17:41 +01:00
jvelilla
9f2abab670 Merge pull request #8 from jocelyn/master
Removed HTTP_(INPUT,OUTPUT)_STREAM classes
2011-11-11 03:57:24 -08:00
Jocelyn Fiat
a46c08de11 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-10 22:05:34 +01:00
Jocelyn Fiat
bc2e8b8ee2 Added is_request_method (STRING): BOOLEAN to help users 2011-11-09 18:07:03 +01:00
Jocelyn Fiat
36493b4324 updated readme with better way to get the source code recursively 2011-11-07 11:11:04 +01:00
Jocelyn Fiat
a09908c048 added script to build archive for download area 2011-11-07 01:22:14 -08:00
Jocelyn Fiat
d96ee66a32 sync with Eiffel Web Nino 2011-11-04 20:28:08 +01:00
Jocelyn Fiat
abd67c8caa applied recent changes related to HTTP_HANDLER.make 2011-11-04 20:27:30 +01:00
Jocelyn Fiat
7669ccfc1d sync with nino and applied changes to connector 2011-11-04 20:21:35 +01:00
Jocelyn Fiat
53496e010b removed useless "a_name" argument
Fixed typo in on_launched
2011-11-04 19:09:49 +01:00
Jocelyn Fiat
3a6e3592ae 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-04 12:15:40 +01:00
jvelilla
cef6f30251 Merge pull request #6 from jocelyn/master
new event on_launched and on_stopped to ease integration with launching application
2011-11-04 03:51:27 -07:00
Jocelyn Fiat
00ffa50054 added events on_launched and on_stopped to ease integration with launching application 2011-11-04 11:46:56 +01:00
Jocelyn Fiat
07f9a8cec7 applied recent changes from Nino 2011-11-03 18:50:19 +01:00
jvelilla
cac126f2f1 Merge pull request #5 from jocelyn/master
Please pull this change
2011-11-03 10:27:27 -07:00
Jocelyn Fiat
c53d4d37a7 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-03 18:13:55 +01:00
Jocelyn Fiat
16cab53fb4 removed compliance on ewsgi, since now we target WSF
applied recent changes related to WSF_VALUE
2011-11-02 16:11:40 +01:00
Jocelyn Fiat
a2bf68e18a Safer interface for WSF_VALUE, when related to STRING value 2011-11-02 15:42:58 +01:00
Jocelyn Fiat
214255c4b9 sync with submodules 2011-11-02 13:30:35 +01:00
Jocelyn Fiat
082b8902ea Merge branch 'master' of git://github.com/Eiffel-World/Eiffel-Web-Framework 2011-11-02 13:11:09 +01:00
Jocelyn Fiat
ee9722fa18 renamed WSF_(.*)_VALUE as WSF_$1 2011-11-02 13:10:35 +01:00
Jocelyn Fiat
4a81d02d12 Fixed obsolete calls, and compilation error. 2011-10-31 18:42:44 +01:00
Jocelyn Fiat
0f5ae7e153 fixed path to cURL.ecf file, using the correct uppercase 2011-10-31 09:14:43 -07:00
Jocelyn Fiat
179dbceaba Fixed missing syntax="provisional" , this was preventing compiling with "across" statements 2011-10-31 16:06:10 +01:00
Jocelyn Fiat
45292e0248 Better implementation to get http header for http_client, and to get list of header entries by key,value 2011-10-31 16:05:34 +01:00
Jocelyn Fiat
a38fca267b Merge branch 'master' of https://github.com/jvelilla/Eiffel-Web-Framework 2011-10-31 12:33:20 +01:00
Jocelyn Fiat
d4266a83ec updated instructions related to submodules 2011-10-31 02:43:44 -07:00
Jocelyn Fiat
83a181ebf1 Fixed remaining 6.8 vs 7.0 compilation issue related to UTF8_(URL_)ENCODER 2011-10-31 09:02:19 +01:00
Jocelyn Fiat
54ecd2b1e8 Merge branch 'master' of github.com:Eiffel-World/Eiffel-Web-Framework 2011-10-31 08:48:44 +01:00
Jocelyn Fiat
da8a216448 removed unused local variable 2011-10-31 08:48:19 +01:00
Jocelyn Fiat
085b520879 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)
2011-10-31 08:45:50 +01:00
Jocelyn Fiat
c115a40922 removed unused local variable 2011-10-31 08:43:04 +01:00
Jocelyn Fiat
6f600362e3 Fixed code to be compilable with EiffelStudio 6.8 and 7.0 (due to recent change in UNICODE_CONVERSION) UNICODE_CONVERSION 2011-10-31 08:42:48 +01:00
jvelilla
bd36aa8b04 Added headers to response in HTTP_CLIENT_RESPONSE 2011-10-28 14:25:26 -03:00
Jocelyn Fiat
812f521c88 Merge branch 'master' of github.com:Eiffel-World/Eiffel-Web-Framework 2011-10-27 16:24:40 +02:00
Jocelyn Fiat
beb1bd1599 use '%/123/' syntax, to make sure no editor replace the accentued characters 2011-10-27 16:24:19 +02:00
Jocelyn Fiat
9bbcdc9927 removed unwanted .rc 2011-10-27 16:03:10 +02:00
Jocelyn Fiat
0d637d478a 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
2011-10-27 16:00:33 +02:00
Jocelyn Fiat
8e4e7a5084 Merge branch 'master' of https://github.com/jvelilla/Eiffel-Web-Framework
Conflicts:
	library/server/wsf/src/wsf_request.e
2011-10-27 15:49:12 +02:00
Jocelyn Fiat
95d44890d9 added script to update current git working copy and submodules recursively 2011-10-27 14:58:14 +02:00
Jocelyn Fiat
161a5c720b Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework 2011-10-27 14:45:37 +02:00
Jocelyn Fiat
35a4cd7df9 cosmetic, or minor changes 2011-10-27 14:45:14 +02:00
Jocelyn Fiat
70ee7ff47a Merge branch 'master' of github.com:Eiffel-World/Eiffel-Web-Framework 2011-10-27 14:43:32 +02:00
jvelilla
c9343688f3 Added eel and eapml in EWF libraries.
Removed them from gitmodule
2011-10-27 08:29:01 -03:00
jvelilla
f804a705d5 Updated request resource handler.
TODO: implement Content-Negotiation
2011-10-26 08:21:50 -03:00
larryl
f17f785ee3 Added simple readme file to cURL library. It tells user the cURL library need 3 DLLs to work.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@87608 8089f293-4706-0410-a29e-feb5c42a2edf
2011-10-25 08:03:57 +00:00
Jocelyn Fiat
926c0a79b7 Start index for list[]=a&list[]=b ... from 1 instead of 0
Stick to Eiffel spirit
2011-10-24 17:44:13 +02:00
Jocelyn Fiat
fb7854fbcc 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
2011-10-24 17:23:36 +02:00
Jocelyn Fiat
663a39d2ec missing implementation (forgot to uncomment) 2011-10-24 09:07:26 +03:00
jvelilla
6fb36da9ac Merge remote-tracking branch 'jocelynEWF/master'
Conflicts:
	examples/restbucks/restbucks-safe.ecf
	examples/restbucks/src/resource/order_handler.e
	library/server/request/router/src/misc/request_resource_handler_helper.e
2011-10-23 20:58:28 -03:00
jvelilla
3fbd81aeb1 Added eel and eapml modules 2011-10-23 09:10:27 -03:00
jvelilla
6344f964fa Update delete method to hanlde method not allowed.
Added method not allowed to request resource handler helper class.
Update gitmodules
2011-10-23 09:05:12 -03:00
Jocelyn Fiat
14a2c01f41 Applied recent changes on WGI_ and WSF_
Moved classes away from ewsgi, restructured, cleaned
2011-10-21 16:58:23 +02:00
Jocelyn Fiat
79e12b8d04 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-21 16:58:18 +02:00
Jocelyn Fiat
aec0136739 First try to get a limited WGI_ and use WSF_ as default framework 2011-10-21 16:58:11 +02:00
Jocelyn Fiat
7fd4cdbe44 Code cleaning, and nicer output under debug clause 2011-10-21 13:40:56 +02:00
jvelilla
9f53287226 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-21 08:26:14 -03:00
Jocelyn Fiat
eaa99c9c61 Used object test 2011-10-19 00:40:04 +02:00
Jocelyn Fiat
5f492d6fb6 removed useless local variable 2011-10-19 00:35:32 +02:00
Jocelyn Fiat
c3f5376ef5 fixed cgi and libfcgi connectors due to recent changes from WGI_APPLICATION 2011-10-14 14:27:54 +02:00
Jocelyn Fiat
21e973f8a4 Removed handling of internal error from WGI_APPLICATION
And for now added it into nino connector
2011-10-14 14:15:23 +02:00
Jocelyn Fiat
dec1958909 Fixed issue with index in uri template matcher 2011-10-14 14:14:13 +02:00
Jocelyn Fiat
1453873b6c 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-14 14:13:40 +02:00
jvelilla
8255dfd996 Added handle_resource_conflict_response feature to handle 409 reponse,
Cosmetic.
2011-10-13 09:07:37 -03:00
Jocelyn Fiat
e66c666e64 removed unwanted first line 2011-10-12 22:56:01 +03:00
Jocelyn Fiat
fcdc164214 Added data and file for post and put request methods 2011-10-12 21:45:57 +02:00
Jocelyn Fiat
4c36d75ef3 Using Transfer-Encoding: chunked in example to send response progressively 2011-10-12 17:23:24 +02:00
Jocelyn Fiat
09030a27d9 sync with submodules 2011-10-12 17:22:46 +02:00
Jocelyn Fiat
b9ca22006b removed unwanted code 2011-10-12 15:38:45 +02:00
Jocelyn Fiat
593b48fe90 applied recent changes on HTTP_REQUEST_METHOD_CONSTANTS 2011-10-12 11:56:25 +02:00
Jocelyn Fiat
735730b5a0 cosmetic 2011-10-12 11:52:00 +02:00
Jocelyn Fiat
035a133b5b 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-12 11:51:49 +02:00
Jocelyn Fiat
0144e97d69 Merge branch 'master' of https://github.com/jvelilla/Eiffel-Web-Framework
Conflicts:	examples/restbucks/src/domain/json_order_converter.e
Cosmetics
2011-10-11 14:25:22 +02:00
Jocelyn Fiat
26bfd72f5f Fixed errors recently introduced 2011-10-11 14:16:08 +02:00
Jocelyn Fiat
88542c2762 Merge branch 'master' of github.com:Eiffel-World/Eiffel-Web-Framework 2011-10-11 14:09:10 +02:00
Jocelyn Fiat
12fc54a403 sync with latest JSON 2011-10-11 14:08:41 +02:00
jvelilla
eb44eef885 Update order_handler, fix json_order_converter 2011-10-11 08:18:46 -03:00
Jocelyn Fiat
c2b66d6ca6 Use local curl if compiler is < 7.0.8.7340
otherwise, use ISE_LIBRARY cURL
2011-10-11 11:09:00 +02:00
Jocelyn Fiat
6758c4aef4 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-11 10:46:56 +02:00
Jocelyn Fiat
6408bec628 Updated readme related to mirrored Eiffel cURL library 2011-10-10 17:56:09 +02:00
Jocelyn Fiat
f77ba9ccd8 added submodule ext/ise_library/curl to use the updated Eiffel cURL from ISE. 2011-10-10 17:48:18 +02:00
Jocelyn Fiat
c105c267e7 cosmetic 2011-10-10 16:09:44 +02:00
Jocelyn Fiat
19da4d6fd0 added http diagrams found on the web 2011-10-07 16:05:39 +02:00
Jocelyn Fiat
a9e2dc1135 Added the possibility to specify the supported content types
Added FIXME
2011-10-07 15:39:04 +02:00
Jocelyn Fiat
4cd1b67607 Cosmetic 2011-10-07 14:40:04 +02:00
Jocelyn Fiat
34bb793599 Added license.lic and copyright to Javier 2011-10-07 14:36:20 +02:00
jfiat
c836d75191 Added more conversion, and accept READABLE_STRING_8 as argument for make_json 2011-10-07 12:25:00 +00:00
jfiat
3739909e43 Minor changes + cosmetics
Added conversion from STRING to JSON_STRING to help users.
2011-10-07 12:19:27 +00:00
Jocelyn Fiat
142dbc39b4 Cosmetic 2011-10-07 14:11:03 +02:00
Jocelyn Fiat
b17887d634 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-07 14:03:31 +02:00
Jocelyn Fiat
f443087e71 Added a first simple test client to test the restbuck client 2011-10-06 19:09:56 +02:00
Jocelyn Fiat
e5eb11b4e7 added support for data in POST request 2011-10-06 19:09:17 +02:00
Jocelyn Fiat
720d8be08a Merge branch 'master' of https://github.com/jvelilla/Eiffel-Web-Framework 2011-10-06 17:37:41 +02:00
jvelilla
ed04b7fba0 Added REQUEST_RESOURCE_HANDLER_HELPER class to contain
common http method behavior.
Updated ORDER_HANLDER to use this new class.
2011-10-06 09:54:20 -03:00
Jocelyn Fiat
4c9e7a4331 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
2011-10-05 17:09:16 +02:00
Jocelyn Fiat
cc6992a6fc added missing call to pre_execute and post_execute 2011-10-05 14:47:59 +02:00
Jocelyn Fiat
71c851ca39 Fixed missing http:// in absolute URL 2011-10-05 14:47:30 +02:00
Jocelyn Fiat
900ed8baea 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.
2011-10-05 14:46:39 +02:00
Jocelyn Fiat
dba55fcfd9 better argument name, to precise the timeout is in second
also in comment.
2011-10-05 14:45:47 +02:00
Jocelyn Fiat
456299ccdf Fixed agent handler for rest library 2011-10-04 17:33:15 +02:00
Jocelyn Fiat
810208f176 Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework 2011-10-04 16:19:36 +02:00
Jocelyn Fiat
27c637b066 fixed inheritance and precursor bad usage. 2011-10-04 16:19:09 +02:00
Jocelyn Fiat
a0df04a7f2 Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework 2011-10-04 09:50:14 +02:00
Jocelyn Fiat
bc5d20b221 Merge branch 'master' of https://github.com/jvelilla/Eiffel-Web-Framework 2011-10-04 09:49:20 +02:00
jvelilla
7ba3eb9ecd Updated support for PUT. Now the example support
GET, POST, PUT, DELETE.
2011-10-03 09:26:01 -03:00
Jocelyn Fiat
2b14a40898 fixed compilation for ewsgi/tests/tests.ecf file 2011-09-28 17:08:28 +02:00
Jocelyn Fiat
aa20a1423f 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.
2011-09-28 16:41:22 +02:00
Jocelyn Fiat
34c8cfa427 cleaned http_client configuration files 2011-09-28 14:53:34 +02:00
Jocelyn Fiat
f7dcadccd5 Added library/library.index 2011-09-28 14:42:53 +02:00
Jocelyn Fiat
f24df1d745 restructured ewsgi to avoid too many sub cluster 2011-09-28 14:42:34 +02:00
jvelilla
5adf40a9ed Updated Restbucks examples, handle not method allowed
in a better way, added the readme file.
2011-09-28 08:54:12 -03:00
jvelilla
f20bc42b76 Merge remote-tracking branch 'jocelynEWF/master' 2011-09-28 07:36:35 -03:00
jfiat
19637b616b Be sure to set the Result /= 0 (i.e ECURLE_OK) when error occurred.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@87340 8089f293-4706-0410-a29e-feb5c42a2edf
2011-09-27 08:06:20 +00:00
Jocelyn Fiat
a4df57a7ac fixed compilation of rest example 2011-09-26 20:54:04 +02:00
Jocelyn Fiat
df59ae579b fixed typo 2011-09-26 17:19:37 +02:00
jocelyn
2b112da43d Updated EWSGI specification (markdown) 2011-09-26 08:18:15 -07:00
Jocelyn Fiat
738eb7555f Changed ITERATION_CURSOR [WGI_VALUE] into ITERABLE [WGI_VALUE] for WGI_REQUEST.*parameters* and similar
Applied recent changes on EWF_HEADER
2011-09-26 17:10:05 +02:00
jocelyn
aaf8af85fd Updated EWSGI (markdown) 2011-09-26 07:53:32 -07:00
jocelyn
beb721ed4b Updated EWSGI (markdown) 2011-09-26 07:51:08 -07:00
jocelyn
2407cb6a63 Updated EWSGI (markdown) 2011-09-26 07:50:17 -07:00
Jocelyn Fiat
d397d4e35d Updated changelogs.txt
sync with nino and doc
2011-09-23 18:34:44 +02:00
Jocelyn Fiat
eeaa47d4f1 Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework 2011-09-23 18:23:35 +02:00
Jocelyn Fiat
0db4317a49 Added AutoTest simple cases for ewsgi using Nino web server 2011-09-23 18:22:42 +02:00
Jocelyn Fiat
668847f8e8 Fixing issue with experimental WGI_MULTIPLE_STRING_VALUE
Fixed issue with RAW_POST_DATA
2011-09-23 18:21:57 +02:00
Jocelyn Fiat
e7fd7af2c5 Removed put_redirection' and replaced by put_location'
Removed useless code in some features
2011-09-23 18:20:23 +02:00
Jocelyn Fiat
24a5c7613d Use READABLE_STRING(_*) instead of just STRING(_*) 2011-09-23 18:20:16 +02:00
Jocelyn Fiat
d9f6cbe80e Added feature to shutdown the Nino http server 2011-09-23 18:18:54 +02:00
Jocelyn Fiat
95ec2e77df Added error reporting in HTTP_CLIENT_RESPONSE
Added missing set_connect_timeout
2011-09-23 18:18:27 +02:00
jvelilla
19b5edd9b4 Added validations. 2011-09-23 09:06:23 -03:00
Jocelyn Fiat
d25146dd27 Merge branch 'master' of https://github.com/jvelilla/Eiffel-Web-Framework 2011-09-22 16:19:48 +02:00
Jocelyn Fiat
ab1c696837 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 15:13:59 +02:00
Jocelyn Fiat
dae8e1d67d Made all libraries compilable in any mode (voidsafe or not)
Fixed related examples
2011-09-22 15:12:33 +02:00
jvelilla
888bc61522 Initial import, work in progress restbuck example. Only support create
a resource
2011-09-22 09:29:59 -03:00
jvelilla
8291905da1 Merge remote-tracking branch 'jocelynEWF/master' 2011-09-22 07:53:23 -03:00
Jocelyn Fiat
d9ba97d33b 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 15:33:40 +02:00
Jocelyn Fiat
33eddd9197 better assertion to ensure `base' is a valid base url 2011-09-21 15:30:20 +02:00
Jocelyn Fiat
458cb56f75 synch with Nino 2011-09-21 15:29:25 +02:00
Jocelyn Fiat
88c015470e better return type for http client functions
added helper features
2011-09-21 15:29:12 +02:00
Jocelyn Fiat
58767bb1c1 add precondition saying the request line should not be empty 2011-09-21 15:26:23 +02:00
jvelilla
f68a713c48 Merge remote-tracking branch 'jocelynEWF/master' 2011-09-21 07:49:40 -03:00
Jocelyn Fiat
0414cd4501 fixed case sensitive path 2011-09-20 18:19:23 +02:00
Jocelyn Fiat
284d7826c8 missing -safe.ecf config file for http_client 2011-09-20 16:59:54 +02:00
Jocelyn Fiat
dff267cd58 Now using READABLE_STRING_... type 2011-09-20 16:57:28 +02:00
Jocelyn Fiat
c2f7c198e0 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-20 16:55:44 +02:00
jfiat
8034123683 Added a few missing CURLOPT_ constants
Grouped constants by category

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@87244 8089f293-4706-0410-a29e-feb5c42a2edf
2011-09-20 14:06:20 +00:00
Jocelyn Fiat
b3ef7c846b Fixed issues in WGI_REQUEST's invariant
Fixed issues with guessing the default format for REST handling
Fixed issue with .._ROUTING_.. component.
2011-09-16 20:59:06 +02:00
Jocelyn Fiat
111812c4e9 Fixed issue with uri template router ..
it was applying on request_uri instead of path_info
now it match on PATH_INFO
2011-09-16 18:56:02 +02:00
Jocelyn Fiat
92d8357d09 more flexible authenticated query .. on handler, and not anymore on context object 2011-09-16 18:55:26 +02:00
Jocelyn Fiat
64060cfa41 fixed wrong order in parameter for callers of set_meta_string_variable 2011-09-16 18:54:44 +02:00
Jocelyn Fiat
d3239ec41b added debug_output to WGI_VALUE 2011-09-16 18:54:16 +02:00
Jocelyn Fiat
7b1557a52a first version of http authorization ..
for now, only basic digest
2011-09-16 18:53:57 +02:00
Jocelyn Fiat
c9a4ebcb23 added request_handler_routes_recorder to provide an implementation for `REQUEST_HANDLER.on_handler_mapped' 2011-09-16 15:17:49 +02:00
Jocelyn Fiat
3f899f6aae Added "on_handler_mapped" callback
to allow any REQUEST_HANDLER to record the existing routes.
2011-09-16 15:11:37 +02:00
Jocelyn Fiat
18684d167b typo 2011-09-16 15:02:08 +02:00
jvelilla
32bb75b9dc Merge remote-tracking branch 'jocelynEWF/master' 2011-09-16 07:04:40 -03:00
Jocelyn Fiat
d06bc76944 minor enhancement of error lib 2011-09-15 22:02:58 +02:00
Jocelyn Fiat
86825854ca Added WGI_MULTIPLE_STRING_VALUE
Renamed value as WGI_STRING_VALUE.string
Renamed a few classes .._CONTEXT_I  as .._CONTEXT
updated example.
2011-09-15 17:49:47 +02:00
Jocelyn Fiat
774cd004db cosmetic 2011-09-15 15:49:53 +02:00
Jocelyn Fiat
c300cf5b6e Merge branch 'master' of git://github.com/Eiffel-World/Eiffel-Web-Framework 2011-09-15 11:17:07 +02:00
Jocelyn Fiat
68247a1849 updated README.md 2011-09-15 10:55:14 +02:00
Jocelyn Fiat
22fd7490fe Simplified interface of "router" library classes 2011-09-14 16:48:27 +02:00
Jocelyn Fiat
8b6e9273fa applied renaming for rest and router lib 2011-09-14 16:05:01 +02:00
Jocelyn Fiat
76fa3e9ff5 Reorganized library "server/request/rest" 2011-09-14 15:46:45 +02:00
Jocelyn Fiat
1e3770d724 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
2011-09-14 15:39:37 +02:00
Jocelyn Fiat
840ae1e6e4 reorganized router library 2011-09-14 15:04:29 +02:00
Jocelyn Fiat
5626e03aa8 - 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.
2011-09-14 14:54:06 +02:00
Jocelyn Fiat
4bcea900a6 better result type (using READABLE_..) 2011-09-14 14:48:08 +02:00
Jocelyn Fiat
b1f5065e63 sync with nino 2011-09-14 14:47:29 +02:00
jvelilla
c37fe9ad79 Merge remote-tracking branch 'jocelynEWF/master' 2011-09-14 07:58:40 -03:00
Jocelyn Fiat
2e53f7e0c4 updated changelogs 2011-09-13 17:12:12 +02:00
Jocelyn Fiat
512f2d2ce5 Added first draft for RESTful library
note: the interfaces are likely to change in the future
2011-09-13 17:08:40 +02:00
Jocelyn Fiat
92105ca7b3 updated config file and examples 2011-09-13 17:07:17 +02:00
Jocelyn Fiat
f0c6eec23d adding routing handler
few renaming
2011-09-13 16:49:45 +02:00
Jocelyn Fiat
32197d0513 changing design to use generic instead of anchor types 2011-09-09 16:24:11 +02:00
Jocelyn Fiat
11286eeeef make router more easy to inherit from and specialized 2011-09-09 14:10:54 +02:00
Jocelyn Fiat
fb8412fcae Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework 2011-09-09 08:54:20 +02:00
Jocelyn Fiat
9ec87a4329 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
2011-09-09 08:51:45 +02:00
Jocelyn Fiat
0c7e6c08e7 better type for argument and result (using READABLE_...) 2011-09-09 08:50:29 +02:00
Jocelyn Fiat
c1120a4226 change to standard default values 2011-09-09 08:50:05 +02:00
jvelilla
5c0cae35ef Sync to jocelyn EWF master 2011-09-08 07:45:10 -03:00
jvelilla
7bd5cdc232 Merge remote-tracking branch 'jocelynEWF/master' 2011-09-08 07:44:27 -03:00
jvelilla
ef85c07603 Update 2011-09-08 07:43:36 -03:00
Jocelyn Fiat
10db3c28a5 sync doc/wiki 2011-09-07 14:31:52 +02:00
jocelyn
820bd7bd6f Updated EWSGI (markdown) 2011-09-07 05:30:29 -07:00
Jocelyn Fiat
54dc7de189 use `resource' as generic name for uri or uri_template 2011-09-07 12:46:09 +02:00
Jocelyn Fiat
2244d101ea added changelogs.txt 2011-09-07 12:22:11 +02:00
Jocelyn Fiat
244fdf1b02 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.
2011-09-07 12:14:03 +02:00
Jocelyn Fiat
3c9fce293f fixed example .. where we forgot to set the status, and send the header
(DbC helped here)
2011-09-07 12:10:48 +02:00
Jocelyn Fiat
eee085dd5a renamed (un)set_meta_parameter as (un)set_meta_variable 2011-09-07 11:42:53 +02:00
Jocelyn Fiat
2d9e2d12a0 Missing HTTP_ prefix for header meta variable in REQUEST 2011-09-07 11:42:02 +02:00
jocelyn
4a7b6ecc94 Updated EWSGI (markdown) 2011-09-05 06:59:49 -07:00
jocelyn
28d03ddf2a Updated EWSGI (markdown) 2011-09-05 06:58:15 -07:00
jocelyn
d0bb906a96 Updated EWSGI (markdown) 2011-09-05 06:56:42 -07:00
jocelyn
597f4bc6bd Updated EWSGI (markdown) 2011-09-05 06:54:29 -07:00
jocelyn
4744bb15c3 Updated EWSGI (markdown) 2011-09-05 06:15:07 -07:00
jocelyn
d0576c6829 Updated EWSGI Open Questions (markdown) 2011-09-05 06:03:33 -07:00
jvelilla
9fef2d71f0 Fixed ecf files that cause a cat-call in the example
web server.
2011-09-05 09:18:39 -03:00
Jocelyn Fiat
6a581f6d62 Changed prefix from EWSGI_ to WGI_
Changed meta variable type to READABLE_STRING_32
2011-08-30 19:20:42 +02:00
Jocelyn Fiat
060f1482fe Changed prefix class name from EWSGI_ to WGI_
changes in interface for REQUEST and RESPONSE
2011-08-30 19:16:40 +02:00
Jocelyn Fiat
ed8f5d694f 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-29 12:48:03 +02:00
Jocelyn Fiat
c20600f281 changed prefix GW_ into EWF_ for EiffelWebFramework
use READABLE_STRING_GENERAL instead of just STRING
2011-08-25 16:00:18 +02:00
Jocelyn Fiat
53ccaa3fde sync wiki doc 2011-08-25 14:48:30 +02:00
Jocelyn Fiat
22afbd7ed0 Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework
Conflicts:
	library/server/ewsgi/connectors/nino/src/gw_nino_connector.e
	library/server/ewsgi/ewsgi-safe.ecf
2011-08-25 14:48:02 +02:00
Jocelyn Fiat
f6b362217c 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)
2011-08-25 14:41:35 +02:00
Jocelyn Fiat
e9ccf855b3 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-25 12:33:20 +02:00
Jocelyn Fiat
4d0148d562 fixing wrong feature usage 2011-08-24 15:54:01 +02:00
Jocelyn Fiat
ec6cc5f2b8 code cleaning, and prepare for internal review 2011-08-18 12:25:40 +02:00
Jocelyn Fiat
40018d36eb enhanced the ERROR_HANDLER 2011-08-04 15:11:51 +02:00
jocelyn
d14e65fdc0 Updated EWSGI : open questions (markdown) 2011-08-02 07:40:10 -07:00
jocelyn
c337f49c87 Updated EWSGI (markdown) 2011-08-02 07:39:45 -07:00
jocelyn
ed587493e9 Updated Home (markdown) 2011-08-02 07:39:34 -07:00
jocelyn
e2fb499853 Updated EWSGI (markdown) 2011-08-02 07:35:47 -07:00
jocelyn
59d4eb528c Created EWSGI (markdown) 2011-08-02 07:35:28 -07:00
jocelyn
afb3890f50 Updated EWSGI: open questions (markdown) 2011-08-02 07:34:52 -07:00
jocelyn
077c140576 Updated Home (markdown) 2011-08-02 07:33:41 -07:00
jocelyn
75dc9fac3e Updated Source structure (markdown) 2011-08-02 07:32:31 -07:00
jocelyn
637909614b Updated EWSGI: open questions (markdown) 2011-08-02 07:31:08 -07:00
jocelyn
45db7eb537 Created EWSGI: open questions (markdown) 2011-08-02 07:30:35 -07:00
Jocelyn Fiat
8e18329063 minor improvements on response_as_result code 2011-08-02 14:53:37 +02:00
jocelyn
8a3b5a77e3 Updated EWSGI specification: difference in main proposals (markdown) 2011-08-02 02:57:33 -07:00
jocelyn
4ab99dcd4a Created EWSGI specification: difference in main proposals (markdown) 2011-08-02 02:52:31 -07:00
Jocelyn Fiat
c372494713 cosmetic in config file .ecf 2011-08-02 10:47:16 +02:00
Jocelyn Fiat
10f4a99ee1 add "write_headers_string" to RESPONSE_BUFFER 2011-08-02 10:46:53 +02:00
jocelyn
cefc95e56f added current eiffel interfaces for APPLICATION, REQUEST and RESPONSE_BUFFER 2011-08-02 01:02:01 -07:00
jocelyn
0194450892 Updated EWSGI specification (markdown) 2011-08-02 00:21:53 -07:00
Jocelyn Fiat
e9085c614c sync wiki 2011-08-01 17:02:33 +02:00
Jocelyn Fiat
f7d3f519a7 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) 2011-08-01 16:47:00 +02:00
Jocelyn Fiat
4eb22d0272 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-08-01 16:41:16 +02:00
jocelyn
a2a1f89299 Updated EWSGI specification (markdown) 2011-08-01 01:19:54 -07:00
jocelyn
b869eb7333 Updated Home (markdown) 2011-08-01 00:36:52 -07:00
jocelyn
7680d071f1 Updated Community collaboration (markdown) 2011-07-29 06:15:51 -07:00
Jocelyn Fiat
bbcc9ef44b added http_accept feature to represent "Accept:" HTTP header 2011-07-29 15:13:34 +02:00
Jocelyn Fiat
801caa4e69 added hello_routed_world example
few changes on new `router' library (still in-progress)
2011-07-29 15:13:08 +02:00
Jocelyn Fiat
1b49445077 Added first draft for a URI and/or URI-template base request router. 2011-07-29 10:51:22 +02:00
Jocelyn Fiat
f005d8bb06 cosmetic 2011-07-29 10:50:31 +02:00
Jocelyn Fiat
a278537f7b Added "flush" to the EWSGI_RESPONSE_STREAM 2011-07-29 10:50:24 +02:00
Jocelyn Fiat
78b5b6f5fe Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework 2011-07-29 08:52:57 +02:00
Jocelyn Fiat
a215c1e4d2 added missing non-void-safe .ecf 2011-07-29 08:52:36 +02:00
Jocelyn Fiat
fe3726677b added missing non-void-safe .ecf 2011-07-29 08:45:26 +02:00
Jocelyn Fiat
94d4909644 Fixed various issue with URI template, added corresponding tests 2011-07-28 18:45:25 +02:00
jocelyn
c7f4f45f5e Updated Libraries (markdown) 2011-07-21 10:01:04 -07:00
Javier Velilla
9dd1439a2f Refactor to use the new library structure convention. 2011-07-15 08:15:31 -03:00
seibo
e1120040bb Updated EWSGI specification (markdown) 2011-07-12 16:02:30 -07:00
seibo
e63553555d Updated EWSGI specification (markdown) 2011-07-12 15:57:54 -07:00
seibo
4904aba360 Updated EWSGI specification (markdown) 2011-07-12 15:48:53 -07:00
seibo
cc7e54a19b Updated EWSGI specification (markdown) 2011-07-12 14:34:05 -07:00
jocelyn
8389829067 Updated Libraries (markdown) 2011-07-12 10:42:23 -07:00
jocelyn
4880d23846 Updated Libraries (markdown) 2011-07-12 10:42:09 -07:00
jocelyn
d409eac9d6 Updated Libraries (markdown) 2011-07-12 10:41:22 -07:00
jocelyn
13993197d3 Created Libraries (markdown) 2011-07-12 10:39:15 -07:00
jocelyn
d5288a4ebe Updated Home (markdown) 2011-07-12 10:33:14 -07:00
jvelilla
4a87d5822b Merge pull request #2 from jocelyn/master
Please consider pulling from my repository
2011-07-12 03:36:36 -07:00
Jocelyn Fiat
de77802546 Merge branch 'master' of github.com:jocelyn/EiffelWebNino 2011-07-12 11:09:59 +02:00
Jocelyn Fiat
f7cf91500c let's have a nino-safe.ecf and also a nino.ecf for non void-safe system 2011-07-12 11:07:09 +02:00
jvelilla
05b4bd90f5 Added test cases from getest to autotest. First version. 2011-07-11 12:07:05 +00:00
jocelyn
6309bbfa52 Updated The Eiffel Web Server Gateway Interface (markdown) 2011-07-08 05:39:44 -07:00
jfiat
6188f99615 added run_autotest.bat scripts 2011-07-08 10:10:40 +00:00
seibo
ab924d3596 Updated The Eiffel Web Server Gateway Interface (markdown) 2011-07-07 16:11:10 -07:00
seibo
13515504c3 Updated The Eiffel Web Server Gateway Interface (markdown) 2011-07-07 15:58:16 -07:00
seibo
831f73b308 Updated EWSGI specification (markdown) 2011-07-07 15:57:14 -07:00
seibo
6cba9a912f Created EWSGI/specification (markdown) 2011-07-07 15:56:14 -07:00
Jocelyn Fiat
c6162aea7e Merge branch 'master' of github.com:jocelyn/Eiffel-Web-Framework.wiki 2011-07-07 16:48:52 +02:00
jfiat
28a699e5f2 Converted the autotest test suite to void-safety
+ cosmetics
2011-07-07 14:39:06 +00:00
jfiat
591cfb6cfa 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 14:03:36 +00:00
jocelyn
1f385658ed Updated Source structure (markdown) 2011-07-07 06:41:47 -07:00
jvelilla
f4c472cb9f 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-07 12:03:25 +00:00
jocelyn
36539997cd Updated Community collaboration (markdown) 2011-07-07 01:24:05 -07:00
jvelilla
94c5c90eaa Updated History and Readme files. 2011-07-06 22:12:26 +00:00
jocelyn
b57450d762 Updated Home (markdown) 2011-07-06 03:48:31 -07:00
jocelyn
398139ee19 Updated Home (markdown) 2011-07-06 03:47:02 -07:00
jocelyn
843a3efe0f Updated Home (markdown) 2011-07-06 03:45:59 -07:00
jocelyn
5a4a749c0f Updated Tasks Roadmap (markdown) 2011-07-06 02:24:18 -07:00
jocelyn
fbbfc784b1 Created Community collaboration (markdown) 2011-07-06 02:22:41 -07:00
jocelyn
dd7b62f7a1 Updated Home (markdown) 2011-07-06 02:14:45 -07:00
jocelyn
b86057e6a4 Created Spec server architecture (markdown) 2011-07-06 02:05:43 -07:00
jocelyn
6bdfb1d74a Updated Home (markdown) 2011-07-06 02:05:17 -07:00
Jocelyn Fiat
baae1daa85 Added server side architecture for EWSGI 2011-07-06 11:03:21 +02:00
jocelyn
c9c2b37070 Created Task json (markdown) 2011-07-05 05:37:20 -07:00
jocelyn
5f5a8c6daf Updated Tasks Roadmap (markdown) 2011-07-05 05:34:06 -07:00
jocelyn
e0eedef3a7 Updated Source structure (markdown) 2011-07-05 05:33:22 -07:00
jocelyn
f9a79c0800 Created Source structure (markdown) 2011-07-05 05:31:59 -07:00
jocelyn
7f35ca21e2 Updated Home (markdown) 2011-07-05 05:22:01 -07:00
jocelyn
71cdfe18ab Updated Home (markdown) 2011-07-05 05:01:45 -07:00
jocelyn
d9b52d2691 Updated Tasks Roadmap (markdown) 2011-07-05 02:43:47 -07:00
jocelyn
0b7165b260 Updated Eiffel-Web-Framework (markdown) 2011-07-05 02:40:41 -07:00
jocelyn
057cec2b44 Updated Tasks Roadmap (markdown) 2011-07-05 02:38:30 -07:00
jocelyn
23d8adaa3d Updated Tasks (markdown) 2011-07-05 02:38:05 -07:00
jocelyn
aca99fe6d4 Created Tasks (markdown) 2011-07-05 02:37:56 -07:00
jocelyn
1782fc9f4d Updated Home (markdown) 2011-06-30 02:24:59 -07:00
jocelyn
509375f7e6 Updated Home (markdown) 2011-06-30 02:24:23 -07:00
Eiffel-World
58f72fdf18 Initial Commit 2011-06-30 02:09:51 -07:00
Javier Velilla
32ff399442 Merge branch 'jocelyn' 2011-06-23 22:59:41 -03:00
Jocelyn Fiat
c7440a2ca0 Fixed the HTTP_SERVER.shutdown_server 2011-06-01 19:13:09 +02:00
Jocelyn Fiat
63cd0610ec Fixed remote info computing 2011-05-31 14:29:16 +02:00
Javier Velilla
c772fc5194 Commit merge jocelyn changes 2011-05-30 23:16:58 -03:00
Jocelyn Fiat
0fda0dc34c left adjust request_header_map items. 2011-05-30 22:26:35 +02:00
Jocelyn Fiat
f22f42c463 Fixed nino.ecf by removing the root class since this is a library config file. 2011-05-30 11:31:53 +02:00
Javier Velilla
569a587ffd Update Readme files 2011-05-28 20:15:48 -03:00
Javier Velilla
6317ca2fe5 Merge git@github.com:jvelilla/EiffelWebNino
Conflicts:
	README
2011-05-28 19:53:47 -03:00
Javier Velilla
12d9dcfff5 Commit Jocelyn changes. 2011-05-28 19:40:31 -03:00
Jocelyn Fiat
824750e748 Don't forget to reset request data 2011-05-27 22:05:56 +02:00
Jocelyn Fiat
c544da3561 Reset values after processing the request
Added port information when starting the server
2011-05-27 19:44:50 +02:00
Jocelyn Fiat
e5e9f9486e Added force_single_threaded option
Modified the interface of process request
default port is now 80
2011-05-27 19:08:35 +02:00
Jocelyn Fiat
720351871b fixed typo in assertion 2011-05-27 16:03:50 +02:00
Jocelyn Fiat
54b95650c5 Moving things around to make it more structured. and turn into library 2011-05-27 15:21:30 +02:00
Jocelyn Fiat
c553bd1e1e 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-27 13:07:06 +02:00
Jocelyn Fiat
64cf2b6936 A few change to make it more customizable
and prepare integration to EiffelWebReloaded (see on github)
2011-05-26 17:23:21 +02:00
jvelilla
85cf39f3c6 Edited README via GitHub 2011-05-21 09:11:32 -07:00
Javier Velilla
af852498be Added process directory 2011-05-21 12:46:45 -03:00
Javier Velilla
dfa30471e3 Import HTTPD Eiffel 2011-05-20 08:58:26 -03:00
Javier Velilla
094dc09354 first commit 2011-05-20 08:53:04 -03:00
manus
3af8d34f0f * 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.


git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@85350 8089f293-4706-0410-a29e-feb5c42a2edf
2011-01-13 23:53:42 +00:00
larryl
d0ca77f104 Added linux-x86' and linux-x86-64' to SVN ignore list
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@83576 8089f293-4706-0410-a29e-feb5c42a2edf
2010-06-15 09:23:11 +00:00
manus
3c0d342704 Updated to match the new config.sh file used on Windows, so that it can work with MSC (already the case) but also with MinGW on a multiprocessor architecture.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@83539 8089f293-4706-0410-a29e-feb5c42a2edf
2010-06-11 23:30:18 +00:00
jfiat
e78d34774e missing curlopt_userpwd case for `is_valid'
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@83514 8089f293-4706-0410-a29e-feb5c42a2edf
2010-06-10 12:31:16 +00:00
larryl
eb57cb1973 Added CURLOPT_CUSTOMREQUEST
More info please check:
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html

Contributed by Javier Hector

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@83453 8089f293-4706-0410-a29e-feb5c42a2edf
2010-06-08 03:09:06 +00:00
manus
3d669e3043 Moved the experimental branch to be the default for libraries.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@82581 8089f293-4706-0410-a29e-feb5c42a2edf
2010-03-16 03:07:44 +00:00
jvelilla
e638eeaae4 Updated skip_white_spaces, now check %U and %T codes 2010-03-16 00:08:37 +00:00
jvelilla
5d63c63a39 Undo changes to is_a_valid_number, because it's doesn't follow the JSON spec. Tests : fail13.json, fail29.json and fail30.json are valid with this implementation, so we go back to the previous implementation. 2010-03-10 11:16:16 +00:00
jvelilla
a863e495ae Updated test_json_fail18 , it's a valid JSON, maybe we need to rename this to test_json_pass4 and the file fail18.json to pass4.json 2010-03-10 11:07:33 +00:00
jvelilla
327196a3cf Removed obsolete cluster. 2010-03-09 11:41:08 +00:00
jvelilla
805874dc9c Added autotest test suite 2010-03-09 11:37:55 +00:00
paul.cohen
11256d697d Added getest based test program 2010-03-08 23:46:59 +00:00
jvelilla
b389d532b7 Updated Eiffel configuration file, updated to the new clusters 2010-03-08 23:43:35 +00:00
paul.cohen
a0e570226c Ported r75 (all JSON value classes) from POC_CONVERTERS_FACTORY branch to trunk 2010-03-08 22:45:41 +00:00
paul.cohen
2710cae1da Merged converters and factory classes from POC_CONVERTERS_FACTORY to trunk 2010-03-08 15:35:32 +00:00
paul.cohen
8cd53b87eb New directory layout created 2010-03-08 15:28:47 +00:00
paul.cohen
6bef8ec387 Added new top level directories; library, test, build and example 2010-03-08 15:08:37 +00:00
jvelilla
f86abed2ff Added History, Readme and License files 2010-03-05 09:18:38 +00:00
manus
683aa808ad In non-experimental version of EiffelStudio we do not distribute void-safe version of the libraries as it does not make sense (since it would convey the message that it is void-safe when it is actually not void-safe).
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@81549 8089f293-4706-0410-a29e-feb5c42a2edf
2009-11-14 00:46:07 +00:00
larryl
7717502363 Added useful comments
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@81175 8089f293-4706-0410-a29e-feb5c42a2edf
2009-10-15 14:38:50 +00:00
larryl
eefd98c630 Added automatic license files for docking and cURL library
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@80413 8089f293-4706-0410-a29e-feb5c42a2edf
2009-08-25 09:40:26 +00:00
jvelilla
7a31e80f90 Simples fixes to the parser, add is_valid_start_symbol and updated parse_json. 2009-08-14 11:19:54 +00:00
jvelilla
aed8d1a516 Added set_representation feature. 2009-08-14 11:09:38 +00:00
jfiat
ab19cc2b16 use item (i) instead [i] 2009-08-13 06:32:32 +00:00
jfiat
d4da754a9c Optimized code, and removed extra dependencies.
Added void-safe version
2009-08-04 12:01:03 +00:00
larryl
ee8bce82b2 Added curlopt_proxy constant
Contributed by Heiko Gering

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@79745 8089f293-4706-0410-a29e-feb5c42a2edf
2009-07-13 09:07:05 +00:00
manus
764372f072 Updated safe-version to also use the API wrapper library otherwise it does not compile.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@78752 8089f293-4706-0410-a29e-feb5c42a2edf
2009-05-18 21:06:56 +00:00
dfurrer
8ddc27b9cb - 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 



git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@78745 8089f293-4706-0410-a29e-feb5c42a2edf
2009-05-18 16:06:27 +00:00
larryl
5d63551002 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

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@78736 8089f293-4706-0410-a29e-feb5c42a2edf
2009-05-18 04:33:10 +00:00
manus
03851ac02e Updated to 1-5-0 schema version of ECFs.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@78475 8089f293-4706-0410-a29e-feb5c42a2edf
2009-05-01 21:42:03 +00:00
jfiat
7e2a847e39 cosmetic
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@78170 8089f293-4706-0410-a29e-feb5c42a2edf
2009-04-10 08:45:10 +00:00
manus
0759dfe1a7 Use new `note' syntax.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@78146 8089f293-4706-0410-a29e-feb5c42a2edf
2009-04-09 18:51:20 +00:00
jfiat
dae6d64f82 Added curl_easy_getinfo. Associated constants and also CURLOPT_USERPWD.
Minor optimization and cosmetics.

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@77794 8089f293-4706-0410-a29e-feb5c42a2edf
2009-03-19 08:18:02 +00:00
jfiat
f1f1f5fbf6 Fixed typo 2009-03-18 16:46:27 +00:00
jfiat
548a320448 Cosmetic + Optimization + Assertion + Void-safety
(no significant interface changes)
2009-03-18 15:29:41 +00:00
jfiat
6bb5b0bac8 Removed erroneous precondition `exists', since we can call slist_append with null pointer to get an initialized pointer.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@77774 8089f293-4706-0410-a29e-feb5c42a2edf
2009-03-18 08:21:46 +00:00
manus
e3d8fbb263 Removed duplicated `local_realclean' definition which could cause a Makefile execution to fail when
launching multiple jobs on a slow file system and slow OS.
Fixed the one already committed for EiffelNet as we had removed `local_clean' which is still needed for
  the `clean' target.


git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@77516 8089f293-4706-0410-a29e-feb5c42a2edf
2009-03-04 00:51:24 +00:00
larryl
caf6d8c528 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 

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@77404 8089f293-4706-0410-a29e-feb5c42a2edf
2009-02-27 13:02:12 +00:00
manus
e880fbde14 Use new syntax for object test and attached/detachable type.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@77298 8089f293-4706-0410-a29e-feb5c42a2edf
2009-02-24 23:44:31 +00:00
manus
9e27a52670 To make transition easier, we are preserving `make_from_c' as creation procedure in the STRING classes
and therefore we should use it instead of `make_from_c_pointer' that will be obsoleted soon.


git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@77047 8089f293-4706-0410-a29e-feb5c42a2edf
2009-02-06 22:45:24 +00:00
king
816e5b4d6c Fixed typo from previous commit
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@76967 8089f293-4706-0410-a29e-feb5c42a2edf
2009-02-04 17:02:38 +00:00
king
9a4a1a3a40 Fixed typo from previous commit
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@76966 8089f293-4706-0410-a29e-feb5c42a2edf
2009-02-04 17:01:51 +00:00
manus
93b74d0d5e Added back vision2 since used for the API_LOADER_IMP on Unix but this time with an explicit conditional.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@76965 8089f293-4706-0410-a29e-feb5c42a2edf
2009-02-04 16:58:59 +00:00
manus
925fdcd979 Made the cURL library void-safe.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@76961 8089f293-4706-0410-a29e-feb5c42a2edf
2009-02-04 01:05:57 +00:00
manus
2f1e4e561b Removed vision2 since not used.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@76960 8089f293-4706-0410-a29e-feb5c42a2edf
2009-02-04 01:04:28 +00:00
manus
5506ab09dc Removal of `is' keyword.
Replacement of `is' by `=' for constant definitions.
Replaced `indexing' by `note'.


git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@76420 8089f293-4706-0410-a29e-feb5c42a2edf
2008-12-29 20:27:11 +00:00
manus
544b5784ae Moved API_LOADER class to where it was used, i.e. the cURL library.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@75972 8089f293-4706-0410-a29e-feb5c42a2edf
2008-12-01 19:34:30 +00:00
jvelilla
1359a1ceae Add descriptions.
Change in skip_withe_spaces to handle newline %N and carriage Return %R
2008-08-29 10:49:24 +00:00
jvelilla
fc7c2d151f Change in the loop, to generate the correct answer (feature visit_json_object). 2008-08-29 10:45:04 +00:00
jvelilla
4e6935655f Add cluster visitor. 2008-08-29 10:40:12 +00:00
berend
d940da7b13 SmartEiffel doesn't have is_space. 2008-08-27 04:29:42 +00:00
berend
31619fc88e JSON number is a double precision IEEE number, not a single precision. 2008-08-27 04:29:12 +00:00
berend
bf781a9d25 Changed formatting a bit.
Made it compile with SE 1.2r7
2008-08-27 04:26:44 +00:00
jvelilla
31750efb8e Add accept method (JSON_VISITOR), remove is_xxx queries, remove to_json feature.
Improve comments
2008-08-25 01:13:35 +00:00
jvelilla
f83c5d2643 Add Visitor Pattern , JSON_VISITOR and PRINT_JSON_VISITOR 2008-08-25 01:10:42 +00:00
jvelilla
c59bc37a40 Fix Bug in quey 'is_a_valid_number'
Remove the space after :  in the regular expression "-?(?: 0|[1-9]\d*)(?: \.\d+)?(?: [eE][+-]?\d+)?\b"
2008-08-08 11:17:32 +00:00
jvelilla
b674dbddf7 Add precondition in query i_th
Remove infix "@" which is deprecated now.
Add invariant for values to show that it is always not Void.
Add postcondition of add.
2008-08-08 11:12:27 +00:00
jvelilla
ed5f8a9740 Redefine the version of ANY of is_equal. 2008-08-08 11:08:51 +00:00
jvelilla
2c42c0dd1a Change void to Void.
Add invariant for 'object' , object_no_null /= Void
2008-08-08 11:04:33 +00:00
jvelilla
d64e01641b Reformatted code to Eiffel Standard 2008-08-08 11:01:14 +00:00
berend
fa35ab07a0 Fixed bug where a JSON string had to end with CRLF. But that's optional.
Reformatted code to Gobo standard.
2008-08-05 03:26:08 +00:00
berend
0bf10c633f Reformatted code to Gobo standard. 2008-08-05 03:25:14 +00:00
paulb
9ef3391b26 Added major version to load the shared library according to rules of ldconfig and the like on other OSs.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@74121 8089f293-4706-0410-a29e-feb5c42a2edf
2008-07-18 20:07:15 +00:00
jvelilla
bc1e6653ae Add Regular expression to check valid numbers and valid unicodes.
Add errors to the parser, under development
2008-07-13 03:30:54 +00:00
jvelilla
b9ccf20d53 Add explicit control characters. 2008-07-13 03:19:20 +00:00
jvelilla
3e7f107b36 Update json.ecf,
Dependencies on Gobo Library. (Regular Expressions)
2008-07-13 03:17:37 +00:00
jvelilla
aa8c2d0a95 Update parse_number 2008-07-09 02:40:38 +00:00
jvelilla
65cd9e8780 Add new files to test ejson, based on json t test material http://www.json.org/JSON_checker/test.zip 2008-06-09 02:24:33 +00:00
jvelilla
cb595d27f4 Update JSON_OBJECT, put routine, now follows Eiffel Style based on HAST_TABLE 2008-06-09 02:18:34 +00:00
jvelilla
aaa10d178a Update Parser with is_parsed.
Update parse_string
2008-06-09 01:32:28 +00:00
jvelilla
1052c10b8d Update test 2008-05-25 18:29:54 +00:00
jvelilla
3083f378a6 Update test 2008-05-25 18:28:40 +00:00
jvelilla
8357bf5d72 Update JSON_VALUE and JSON_OBJECT interface 2008-05-25 18:23:25 +00:00
jvelilla
8f3c7beba8 CDD classes 2008-05-25 00:03:46 +00:00
jvelilla
5a779fbb57 Add new test_json_object 2008-05-25 00:02:56 +00:00
jvelilla
4559b7fef5 Add new test_json_object 2008-05-25 00:00:43 +00:00
jvelilla
7dc33a52f6 Update JSON_STRING rutine is_equal
Update JSON_OBJECT new features (has_keys, item,get_keys), and fixed an incorrect use of HASH_TABLE
2008-05-24 23:57:04 +00:00
jvelilla
de347f6c98 eJson tests initial import 2008-05-24 15:04:36 +00:00
jvelilla
308fa7f2e7 eJson initial import 2008-05-24 14:23:27 +00:00
larryl
a06fbd5f0b Use precondition instead of raising an exception.
Fixed bug#14062: CURL dynamic library not found exception is causing an internal failure in WEL

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@72612 8089f293-4706-0410-a29e-feb5c42a2edf
2008-03-05 11:06:41 +00:00
larryl
098032e815 Raise an exception when cURL dynamic library not found.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@72546 8089f293-4706-0410-a29e-feb5c42a2edf
2008-02-29 03:43:43 +00:00
paulb
893fce5706 Reverted to is_mac
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@72174 8089f293-4706-0410-a29e-feb5c42a2edf
2008-02-01 16:42:36 +00:00
paulb
839cb26d7e changed platform query is_mac' to is_mac_os'
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@72173 8089f293-4706-0410-a29e-feb5c42a2edf
2008-02-01 16:36:55 +00:00
paulb
b1952a6e2c Added query for Mac OS as a platform in PLATFORM.
Fixed cURL library to ustilize Mac OS dylib version of libcurl


git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@72154 8089f293-4706-0410-a29e-feb5c42a2edf
2008-01-31 21:02:28 +00:00
jfiat
3b231019ea Added {CURL_OPT_CONSTANTS}.curlopt_followlocation
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71900 8089f293-4706-0410-a29e-feb5c42a2edf
2008-01-14 11:50:55 +00:00
larryl
60b99e48d4 Added `global_cleanup' which declared as curl_global_cleanup() in C.
Added comments.

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71817 8089f293-4706-0410-a29e-feb5c42a2edf
2008-01-09 06:50:07 +00:00
larryl
987c18198e 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.

git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71685 8089f293-4706-0410-a29e-feb5c42a2edf
2007-12-31 09:48:53 +00:00
manus
5980a724cc Removed directory integrated by mistake.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71441 8089f293-4706-0410-a29e-feb5c42a2edf
2007-12-10 17:21:34 +00:00
jfiat
7448567c53 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.


git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71410 8089f293-4706-0410-a29e-feb5c42a2edf
2007-12-07 12:15:52 +00:00
manus
ea4be7219b Fixed bug#13627 where we had an incorrect cast.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71400 8089f293-4706-0410-a29e-feb5c42a2edf
2007-12-07 01:15:55 +00:00
manus
9a3e12fe12 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.


git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71399 8089f293-4706-0410-a29e-feb5c42a2edf
2007-12-07 01:08:12 +00:00
manus
c8c23ca064 Fixed various errors in the C interface.
Use new C external syntax.


git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71204 8089f293-4706-0410-a29e-feb5c42a2edf
2007-11-18 05:32:48 +00:00
paulb
4daf5b727a Set item to default_pointer on dispose, to prevent a panic.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71170 8089f293-4706-0410-a29e-feb5c42a2edf
2007-11-16 00:13:35 +00:00
larryl
fe76c9eac5 Added `static' to each variable and function to fix Linux Eiffel Studio finalizing C multiply definition problem.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71101 8089f293-4706-0410-a29e-feb5c42a2edf
2007-11-09 10:19:23 +00:00
larryl
81d91930ef Added class description and license information.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71100 8089f293-4706-0410-a29e-feb5c42a2edf
2007-11-09 08:36:46 +00:00
larryl
7e024b589a Use EIF_REFERENCE instead of EIF_OBJECT.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71086 8089f293-4706-0410-a29e-feb5c42a2edf
2007-11-08 08:55:00 +00:00
larryl
65559b8b82 Removed some preprocessors. Made it compiled on Solaris.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71083 8089f293-4706-0410-a29e-feb5c42a2edf
2007-11-08 07:52:34 +00:00
larryl
179ac3a128 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.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71081 8089f293-4706-0410-a29e-feb5c42a2edf
2007-11-08 07:09:16 +00:00
larryl
6179b0f223 Added constant: curlopt_writefunction
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71028 8089f293-4706-0410-a29e-feb5c42a2edf
2007-11-03 06:09:00 +00:00
larryl
77c028a9cd Cosmetics.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@71027 8089f293-4706-0410-a29e-feb5c42a2edf
2007-11-03 06:08:03 +00:00
larryl
09a1c2d34a Made cURL wrapper library works on Linux.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@70943 8089f293-4706-0410-a29e-feb5c42a2edf
2007-10-30 11:22:26 +00:00
larryl
2d99813b5d Removed `libcurl_imp.lib' external object since we use dynamic loading technique now.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@70914 8089f293-4706-0410-a29e-feb5c42a2edf
2007-10-26 13:10:12 +00:00
larryl
6cf3589a43 We can start our executables even without dll (so) files.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@70908 8089f293-4706-0410-a29e-feb5c42a2edf
2007-10-26 08:05:22 +00:00
larryl
1b972b3e24 Removed the lib file which should be generated from C source codes.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@70783 8089f293-4706-0410-a29e-feb5c42a2edf
2007-10-22 10:16:49 +00:00
larryl
a99db5fd43 First commit of libcURL Eiffel wrapper library.
git-svn-id: https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/library/cURL@70782 8089f293-4706-0410-a29e-feb5c42a2edf
2007-10-22 08:22:30 +00:00
1522 changed files with 182604 additions and 7801 deletions

5
.gitignore vendored
View File

@@ -1,2 +1,7 @@
EIFGENs
tests/temp/
.svn/
*.swp
*~
*.scm
*#

9
.gitmodules vendored
View File

@@ -1,9 +0,0 @@
[submodule "doc/wiki"]
path = doc/wiki
url = https://github.com/Eiffel-World/Eiffel-Web-Framework.wiki.git
[submodule "ext/server/nino"]
path = ext/server/nino
url = http://github.com/Eiffel-World/EiffelWebNino.git
[submodule "ext/text/json"]
path = ext/text/json
url = http://github.com/Eiffel-World/ejson-svn.git

7
CHANGELOGS.txt Normal file
View File

@@ -0,0 +1,7 @@
History for Eiffel-Web-Framework
[2015-06-10]
* Updated EWF design to better support concurrency, including SCOOP via
the new standalone connector.
[Previous ] Many significant changes in v0

142
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,142 @@
# Contributing to this project
Please take a moment to review this document in order to make the contribution
process easy and effective for everyone involved.
Following these guidelines helps to communicate that you respect the time of
the developers managing and developing this open source project. In return,
they should reciprocate that respect in addressing your issue or assessing
patches and features.
## Using the issue tracker
The issue tracker is the preferred channel for [bug reports](#bugs),
[features requests](#features) and [submitting pull
requests](#pull-requests), but please respect the following restrictions:
* Please **do not** use the issue tracker for personal support requests (use
[Stack Overflow](http://stackoverflow.com) or IRC).
* Please **do not** derail or troll issues. Keep the discussion on topic and
respect the opinions of others.
<a name="bugs"></a>
## Bug reports
A bug is a _demonstrable problem_ that is caused by the code in the repository.
Good bug reports are extremely helpful - thank you!
Guidelines for bug reports:
1. **Use the GitHub issue search** &mdash; check if the issue has already been
reported.
2. **Check if the issue has been fixed** &mdash; try to reproduce it using the
latest `master` or development branch in the repository.
3. **Isolate the problem** &mdash; ideally create a [reduced test
case](http://css-tricks.com/6263-reduced-test-cases/) and a live example.
A good bug report shouldn't leave others needing to chase you up for more
information. Please try to be as detailed as possible in your report. What is
your environment? What steps will reproduce the issue? What browser(s) and OS
experience the problem? What would you expect to be the outcome? All these
details will help people to fix any potential bugs.
Example:
> Short and descriptive example bug report title
>
> A summary of the issue and the browser/OS environment in which it occurs. If
> suitable, include the steps required to reproduce the bug.
>
> 1. This is the first step
> 2. This is the second step
> 3. Further steps, etc.
>
> `<url>` - a link to the reduced test case
>
> Any other information you want to share that is relevant to the issue being
> reported. This might include the lines of code that you have identified as
> causing the bug, and potential solutions (and your opinions on their
> merits).
<a name="features"></a>
## Feature requests
Feature requests are welcome. But take a moment to find out whether your idea
fits with the scope and aims of the project. It's up to *you* to make a strong
case to convince the project's developers of the merits of this feature. Please
provide as much detail and context as possible.
<a name="pull-requests"></a>
## Pull requests
Good pull requests - patches, improvements, new features - are a fantastic
help. They should remain focused in scope and avoid containing unrelated
commits.
**Please ask first** before embarking on any significant pull request (e.g.
implementing features, refactoring code, porting to a different language),
otherwise you risk spending a lot of time working on something that the
project's developers might not want to merge into the project.
Please adhere to the coding conventions used throughout a project (indentation,
accurate comments, etc.) and any other requirements (such as test coverage).
Adhering to the following this process is the best way to get your work
included in the project:
1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork,
and configure the remotes:
```bash
# Clone your fork of the repo into the current directory
git clone https://github.com/<your-username>/<repo-name>
# Navigate to the newly cloned directory
cd <repo-name>
# Assign the original repo to a remote called "upstream"
git remote add upstream https://github.com/<upstream-owner>/<repo-name>
```
2. If you cloned a while ago, get the latest changes from upstream:
```bash
git checkout <dev-branch>
git pull upstream <dev-branch>
```
3. Create a new topic branch (off the main project development branch) to
contain your feature, change, or fix:
```bash
git checkout -b <topic-branch-name>
```
4. Commit your changes in logical chunks. Please adhere to these [git commit
message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
or your code is unlikely be merged into the main project. Use Git's
[interactive rebase](https://help.github.com/articles/interactive-rebase)
feature to tidy up your commits before making them public.
5. Locally merge (or rebase) the upstream development branch into your topic branch:
```bash
git pull [--rebase] upstream <dev-branch>
```
6. Push your topic branch up to your fork:
```bash
git push origin <topic-branch-name>
```
7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
with a clear title and description.
**IMPORTANT**: By submitting a patch, you agree to allow the project owner to
license your work under the same license as that used by the project.

3440
ChangeLog Normal file

File diff suppressed because it is too large Load Diff

121
MIGRATION.md Normal file
View File

@@ -0,0 +1,121 @@
Date: 2015-june
# Goal:
=======
- support safe concurrency with EWF
- provide a concurrent standalone connector
# Status:
=========
- The version v0 of EWF has mainly 3 connectors: CGI, libFCGI, and nino.
- CGI and libFCGI connectors does not need any concurrency support.
- But the nino connector had a pseudo concurrency support with Thread, however one could do write code that result in hasardeous concurrency execution.
So, it was decided to provide an improved Eiffel web nino connector, and update EWF design to make it concurrency compliant.
# Decisions:
============
- instead of updating current nino library, we now have a new "standalone" connector which is inspired by nino, but have support for the 3 concurrency modes: none, thread and SCOOP.
# Overview
==========
Adding support for SCOOP concurrency mode add constraints to the design, but also helps ensuring the concurrency design of EWF is correct.
As a consequence, we had to introduce a new interface WSF_EXECUTION which is instantiated for each incoming request. See its simplified interface :
<code lang="eiffel">
deferred class WSF_EXECUTION
feature -- Initialization
make (req: WGI_REQUEST; res: WGI_RESPONSE)
do
...
īnitialize
end
initialize
-- Initialize Current object.
--| To be redefined if needed.
do
end
feature -- Access
request: WSF_REQUEST
-- Access to request data.
-- Header, Query, Post, Input data..
response: WSF_RESPONSE
-- Access to output stream, back to the client.
feature -- Execution
execute
-- Execute Current `request',
-- getting data from `request'
-- and response to client via `response'.
deferred
ensure
is_valid_end_of_execution: is_valid_end_of_execution
end
end
</code>
And the related request execution routines are extracted from WSF_SERVICE which becomes almost useless. The "service" part is not mostly responsible of launching the expected connector and set optional options, and declare the type of "execution" interface.
As a result, the well known WSF_DEFAULT_SERVICE has now a formal generic that should conform to WSF_EXECUTION with a `make' creation procedure. See update code:
<code lang="eiffel">
class
APPLICATION
inherit
WSF_DEFAULT_SERVICE [APPLICATION_EXECUTION]
redefine
initialize
end
create
make_and_launch
feature {NONE} -- Initialization
initialize
-- Initialize current service.
do
set_service_option ("port", 9090)
end
end
</code>
Where APPLICATION_EXECUTION is an implementation of the WSF_EXECUTION interface (with the `make' creation procedure).
In addition to add better and safer concurrency support, there are other advantages:
- we now have a clear separation between the service launcher, and the request execution itself.
- the WSF_EXECUTION is created per request, with two main attributes <code>request: WSF_REQUEST</code> and <code>response: WSF_RESPONSE</code>.
# How to migrate to new design
- you can check the various example from the EWF repository, there should all be migrated to new design and comparing previous and new code, this will show you how the migration was done.
- a frequent process:
- identify the root class of your service, (the class implementing the WSF_SERVICE), let us name it APPLICATION_SERVICE
- copy the APPLICATION_SERVICE file to APPLICATION_EXECUTION file.
- change the class name to be APPLICATION_EXECUTION, and replace _SERVICE occurences by _EXECUTION (note the new WSF_ROUTED_EXECUTION and so on, which are mainly migration from previous WSF_ROUTED_SERVICE .., and also WSF_FILTERED_ROUTED_EXECUTION which is new.
- replace "make_and_launch" by "make", remove the initialize redefinition if any.
- in the APPLICATION_SERVICE class, remove most of the ROUTED, FILTERED ... inheritance, and keep WSF_DEFAULT_SERVICE, with a new formal generic i.e WSF_DEFAULT_SERVICE [APPLICATION_EXECUTION].
- in the eventual redefined initialize, remove code related to routers, filters, ...
- remove all the execution related code.
- And you should be done.
- To be short, this is mostly creating a new _EXECUTION class, and move the execution related code into this class from the _SERVICE class.
- Then, you can replace the usage of nino connector by using the new "Standalone" connector, and switch to SCOOP concurrency mode, to ensure you are not messing up with concurrency. Your own code/libraris may not be SCOOP compliant, we recommend to migrate to SCOOP, but as an intermediate solutioņ, you can use the other concurrency mode (none or thread).
Note: the new design impacts the _SERVICE classes, connectors, but WSF_REQUEST, WSF_RESPONSE , WSF_ROUTER are compatible, so the migration is really easy.
We may take the opportunity to update the design deeper according to user feedback, and eventually "wsf" library will be renamed "wsf2".
This is work in progress, all comments , feedback, suggestions, bug report are welcome.
Hopefully before the final version of the new design is out.

1
README
View File

@@ -1 +0,0 @@
README.md

118
README.md
View File

@@ -1,30 +1,110 @@
# Eiffel Web Framework
## Overview
The Eiffel Web Framework (EWF) provides Eiffel users with a layer to build anything on top of the http protocol such as websites, web API/services.
This layer is multi-platform: it can be set on Windows, Linux operating systems, and in addition it can run on top of any httpd servers such as Apache2, IIS, nginx, lighttpd. EWF includes as well a standalone httpd web server component, written in Eiffel, which enables users to run easily a web server on their machine, or even embed this component in any application written with Eiffel.
Currently EWF offers a collection of Eiffel libraries designed to be integrated with each others, and among other functionalities, it give simple access to the request data, to handle content negotiation, url dispatcher, integrate with openid system, and so on.
There is a growing ecosystem around EWF, that provides useful components:
* OpenID and OAuth consumer library
* Various hypermedia format such as HAL, Collection+json, …
* Websocket server and client
* Template engine
* API Auto-documentation with swagger
* A simple experimental CMS.
* ...
So if you want to build a website, a web api, RESTful service, …or even if you want to consume other web api, EWF is a solution.
EWF brings with it all the advantages of the Eiffel technology and tools with its powerful features such as Design by Contract, debugging, testing tools which enable to build efficient systems expected to be repeatedly refined, extended, and improved in a predictable and controllable way so as to become with time bugfree systems. Enjoy the full power of debugging your web server application from the IDE.
## Project
Official project site for Eiffel Web Framework:
* https://github.com/Eiffel-World/Eiffel-Web-Framework
* http://eiffelwebframework.github.com/EWF/
For more information please have a look at the related wiki:
* https://github.com/Eiffel-World/Eiffel-Web-Framework/wiki
How to get the source code?
---------------------------
* https://github.com/EiffelWebFramework/EWF/wiki
git clone https://github.com/Eiffel-World/Eiffel-Web-Framework.git
cd Eiffel-Web-Framework
git submodule update --init
git submodule foreach git pull origin master
git submodule foreach git checkout master
For download, check
* https://github.com/EiffelWebFramework/EWF/downloads
Overview
--------
Tasks and issues are managed with github issue system
* See https://github.com/EiffelWebFramework/EWF/issues
* And visual dashboard: https://waffle.io/eiffelwebframework/ewf
* Forum/group post: https://groups.google.com/forum/#!forum/eiffel-web-framework
* library/server/ewsgi: Eiffel Web Server Gateway Interface
* library/server/ewsgi/connectors: various web server connectors for EWSGI
* library/server/libfcgi: Wrapper for libfcgi SDK
## Requirements
* Compiling from EiffelStudio 13.11 to 15.05 and more recent version of the compiler.
* Currently being developped using EiffelStudio 15.01 (on Windows, Linux)
* Tested using EiffelStudio 15.01 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) )
* library/protocol/http: HTTP related classes, constants for status code, content types, ...
* library/protocol/uri_template: URI Template library (parsing and expander)
## How to get the source code?
Using git
* git clone https://github.com/EiffelWebFramework/EWF.git
* And to build the required and related Clibs
* cd contrib/ise_library/cURL
* geant compile
## Libraries under 'library'
### server
* __ewsgi__: Eiffel Web Server Gateway Interface [read more](library/server/ewsgi)
* connectors: various web server connectors for EWSGI
* libfcgi: Wrapper for libfcgi SDK
* __wsf__: Web Server Framework [read more](library/server/wsf)
* __router__: URL dispatching/routing based on uri, uri_template, or custom [read more](library/server/wsf/router)
### protocol
* __http__: HTTP related classes, constants for status code, content types, ... [read more](library/protocol/http)
* __uri_template__: URI Template library (parsing and expander) [read more](library/protocol/uri_template)
* __CONNEG__: Content negotiation library (Content-type Negociation) [read more](library/protocol/content_negotiation)
### client
* __http_client__: simple HTTP client based on cURL [read more](library/client/http_client)
### text
* __encoder__: Various simpler encoders: base64, url-encoder, xml entities, html entities [read more](library/text/encoder)
### Others
* error: very simple/basic library to handle error
## External libraries under 'contrib'
* [Eiffel Web Nino](contrib/library/server/nino)
* ..
## Draft folder = call for contribution ##
## Examples
..
## Contributing to this project
Anyone and everyone is welcome to contribute. Please take a moment to
review the [guidelines for contributing](CONTRIBUTING.md).
* [Bug reports](CONTRIBUTING.md#bugs)
* [Feature requests](CONTRIBUTING.md#features)
* [Pull requests](CONTRIBUTING.md#pull-requests)
## Community
Keep track of development and community news.
* Follow [@EiffelWeb](https://twitter.com/EiffelWeb) on Twitter
* [Forum](https://groups.google.com/forum/#!forum/eiffel-web-framework) on Google groups.
* Follow our [page](https://plus.google.com/u/0/110650349519032194479) and [community](https://plus.google.com/communities/110457383244374256721) on Google+
* Have a question that's not a feature request or bug report? [Ask on the mailing list](http://groups.google.com/group/eiffel-web-framework)
* library/error: very simple/basic library to handle error
* library/text/encoder: Various simpler encoder: base64, url-encoder, xml entities, html entities
For more information please have a look at the related wiki:
* https://github.com/Eiffel-World/Eiffel-Web-Framework/wiki
* https://github.com/EiffelWebFramework/EWF/wiki

35
build.eant Normal file
View File

@@ -0,0 +1,35 @@
<?xml version="1.0"?>
<project name="build_library" default="help">
<description>
description: "Compile Eiffel Web Framework"
</description>
<target name="help">
<echo message="usage:"/>
<echo message=" geant compile"/>
<echo message=" geant clean"/>
<echo message=" geant clobber"/>
</target>
<target name="compile" >
<echo message="- Compile EWF" />
<geant target="_build_tpl_" arguments="compile" />
</target>
<target name="clean" >
<echo message="- Clean EWF" />
<geant target="_build_tpl_" arguments="clean" />
</target>
<target name="clobber" >
<echo message="- Clobber EWF" />
<geant target="_build_tpl_" arguments="clobber" />
</target>
<target name="_build_tpl_" >
<argument name="_target_name" />
<geant target="${_target_name}" dir="contrib" file="build.eant" reuse_variables="true" />
</target>
</project>

37
contrib/build.eant Normal file
View File

@@ -0,0 +1,37 @@
<?xml version="1.0"?>
<project name="build_library" default="help">
<description>
description: "Compile Eiffel Web Framework / Contrib"
</description>
<target name="help">
<echo message="usage:"/>
<echo message=" geant compile"/>
<echo message=" geant clean"/>
<echo message=" geant clobber"/>
</target>
<target name="compile" >
<echo message="- Compile contrib" />
<geant target="_build_tpl_" arguments="compile" />
</target>
<target name="clean" >
<echo message="- Clean contrib" />
<geant target="_build_tpl_" arguments="clean" />
</target>
<target name="clobber" >
<echo message="- Clobber contrib" />
<geant target="_build_tpl_" arguments="clobber" />
</target>
<target name="_build_tpl_" >
<argument name="_target_name" />
<!--
<geant target="${_target_name}" dir="library" file="build.eant" reuse_variables="true" />
-->
</target>
</project>

View File

@@ -0,0 +1 @@
EIFGENs

View File

@@ -0,0 +1,44 @@
note
description : "nino application root class"
date : "$Date$"
revision : "$Revision$"
class
APPLICATION
inherit
ARGUMENTS
HTTP_SERVER_SHARED_CONFIGURATION
create
make
feature {NONE} -- Initialization
make
-- Run application.
local
l_server : HTTP_SERVER
l_cfg: HTTP_SERVER_CONFIGURATION
l_http_handler : HTTP_HANDLER
do
create l_cfg.make
l_cfg.http_server_port := 9_000
l_cfg.document_root := default_document_root
set_server_configuration (l_cfg)
debug ("nino")
l_cfg.set_is_verbose (True)
end
create l_server.make (l_cfg)
create {APPLICATION_CONNECTION_HANDLER} l_http_handler.make (l_server)
l_server.setup (l_http_handler)
end
feature -- Access
default_document_root: STRING = "webroot"
end

View File

@@ -0,0 +1,61 @@
note
description: "Summary description for {HTTP_CONNECTION_HANDLER}."
author: ""
date: "$Date$"
revision: "$Revision$"
class
APPLICATION_CONNECTION_HANDLER
inherit
HTTP_CONNECTION_HANDLER
create
make
feature -- Request processing
process_request (a_handler: HTTP_CONNECTION_HANDLER; a_socket: TCP_STREAM_SOCKET)
-- Process request ...
local
a_method: STRING
do
a_method := a_handler.method
if a_method.is_equal (Get) then
execute_get_request (a_handler.uri, a_handler.request_header_map, a_handler.request_header, a_socket)
elseif a_method.is_equal (Post) then
execute_post_request (a_handler.uri, a_handler.request_header_map, a_handler.request_header, a_socket)
elseif a_method.is_equal (Put) then
elseif a_method.is_equal (Options) then
elseif a_method.is_equal (Head) then
elseif a_method.is_equal (Delete) then
elseif a_method.is_equal (Trace) then
elseif a_method.is_equal (Connect) then
else
debug
print ("Method [" + a_method + "] not supported")
end
end
end
execute_get_request (a_uri: STRING; a_headers_map: HASH_TABLE [STRING, STRING]; a_headers_text: STRING; a_socket: TCP_STREAM_SOCKET)
local
l_http_request : HTTP_REQUEST_HANDLER
do
create {GET_REQUEST_HANDLER} l_http_request.make (a_socket)
l_http_request.set_uri (a_uri)
l_http_request.process
end
execute_post_request (a_uri: STRING; a_headers_map: HASH_TABLE [STRING, STRING]; a_headers_text: STRING; a_socket: TCP_STREAM_SOCKET)
local
l_http_request : HTTP_REQUEST_HANDLER
do
check not_yet_implemented: False end
create {POST_REQUEST_HANDLER} l_http_request.make (a_socket)
l_http_request.set_uri (a_uri)
l_http_request.process
end
end

View File

@@ -0,0 +1,48 @@
note
description: "Summary description for {HTTP_SERVER_SHARED_CONFIGURATION}."
author: ""
date: "$Date$"
revision: "$Revision$"
class
HTTP_SERVER_SHARED_CONFIGURATION
feature -- Access
server_configuration: detachable HTTP_SERVER_CONFIGURATION
-- Shared configuration
do
if attached server_configuration_cell.item as l_cfg then
Result := l_cfg
end
end
document_root: STRING_8
-- Shared document root
do
if attached server_configuration as l_cfg then
Result := l_cfg.document_root
else
Result := ""
end
end
feature -- Element change
set_server_configuration (a_cfg: like server_configuration)
-- Set `server_configuration' to `a_cfg'.
do
server_configuration_cell.replace (a_cfg)
end
feature {NONE} -- Implementation
server_configuration_cell: CELL [detachable HTTP_SERVER_CONFIGURATION]
once ("PROCESS")
create Result.put (Void)
end
note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,172 @@
class
GET_REQUEST_HANDLER
inherit
HTTP_REQUEST_HANDLER
HTTP_SERVER_SHARED_CONFIGURATION
undefine
default_create
end
SHARED_URI_CONTENTS_TYPES
undefine
default_create
end
HTTP_CONSTANTS
undefine
default_create
end
create
make
feature {NONE} -- Initialization
make (a_socket: TCP_STREAM_SOCKET)
do
default_create
socket := a_socket
end
feature -- Access
socket: TCP_STREAM_SOCKET
feature -- Execution
process
-- process the request and create an answer
local
fname: STRING_8
f: RAW_FILE
ctype, extension: detachable STRING_8
do
answer.reset
if script_name.is_equal ("/") then
process_default
answer.set_content_type ("text/html")
else
create fname.make_from_string (Document_root)
fname.append (script_name)
debug
print ("URI filename: " + fname)
end
create f.make (real_filename (fname))
if f.exists then
extension := Ct_table.extension (script_name)
ctype := Ct_table.content_types.item (extension)
if f.is_directory then
process_directory (f)
else
if ctype = Void then
process_raw_file (f)
answer.set_content_type ("text/html")
else
if ctype.is_equal ("text/html") then
process_text_file (f)
else
process_raw_file (f)
end
answer.set_content_type (ctype)
end
end
else
answer.set_status_code (Not_found)
answer.set_reason_phrase (Not_found_message)
answer.set_reply_text ("Not found on this server")
end
end
if attached answer.reply_text as t then
answer.set_content_length (t.count)
else
answer.set_content_length (0)
end
--| Output the result
socket.put_string (answer.reply_header + answer.reply_text)
end
process_default
-- Return a default response
local
html: STRING_8
do
answer.set_reply_text ("")
html := " <html> <head> <title> NINO HTTPD </title> " + " </head> " + " <body> " + " <h1> Welcome to NINO HTTPD! </h1> " + " <p> Default page " + " </p> " + " </body> " + " </html> "
answer.append_reply_text (html)
end
process_text_file (f: FILE)
-- send a text file reply
require
valid_f: f /= Void
do
f.open_read
from
answer.set_reply_text ("")
f.read_line
until
f.end_of_file
loop
answer.append_reply_text (f.last_string)
answer.append_reply_text (Crlf)
f.read_line
end
f.close
end
process_raw_file (f: FILE)
-- send a raw file reply
require
valid_f: f /= Void
do
f.open_read
from
answer.set_reply_text ("")
until
f.end_of_file
loop
f.read_stream_thread_aware (1024)
answer.append_reply_text (f.last_string)
end
f.close
end
process_directory (f: FILE)
--read the directory
require
is_directory: f.is_directory
local
l_dir: DIRECTORY
files: ARRAYED_LIST [STRING_8]
html1: STRING_8
html2: STRING_8
htmldir: STRING_8
path: STRING_8
do
answer.set_reply_text ("")
html1 := " <html> <head> <title> NINO HTTPD </title> " + " </head> " + " <body> " + " <h1> Welcome to NINO HTTPD! </h1> " + " <p> Default page "
html2 := " </p> " + " </body> " + " </html> "
path := script_name
if path[path.count] = '/' then
path.remove_tail (1)
end
create l_dir.make_open_read (f.name)
files := l_dir.linear_representation
from
files.start
htmldir := "<ul>"
until
files.after
loop
htmldir := htmldir + "<li><a href=%"" + path + "/" + files.item_for_iteration + "%">" + files.item_for_iteration + "</a> </li>%N"
files.forth
end
htmldir := htmldir + "</ul>"
answer.append_reply_text (html1 + htmldir + html2)
end
end -- class GET_REQUEST_HANDLER

View File

@@ -0,0 +1,115 @@
note
description: "Summary description for {HEAD_REQUEST_HANDLER}."
author: ""
date: "$Date$"
revision: "$Revision$"
class
HEAD_REQUEST_HANDLER
inherit
SHARED_DOCUMENT_ROOT
SHARED_URI_CONTENTS_TYPES
HTTP_REQUEST_HANDLER
HTTP_CONSTANTS
feature
process
-- process the request and create an answer
local
fname: STRING
f: RAW_FILE
ctype, extension: STRING
do
fname := document_root_cell.item.twin
fname.append (request_uri)
debug
print ("URI name: " + fname )
end
create f.make (fname)
create answer.make
if f.exists then
extension := ct_table.extension (request_uri)
ctype := ct_table.content_types.item (extension)
-- TODO: This code could be improved to avoid string
-- comparisons
if ctype = Void then
process_default
answer.set_content_type ("text/html")
else
if ctype.is_equal ("text/html") then
process_text_file (f)
else
process_raw_file (f)
end
answer.set_content_type (ctype)
end
else
answer.set_status_code (not_found)
answer.set_reason_phrase (not_found_message)
answer.set_reply_text ("Not found on this server%N%R")
end
end
process_default
--
local
html : STRING
do
answer.set_reply_text ("")
html := " <html> <head> <title> Micro HTTPD </title> " +
" </head> " +
" <body> " +
" <h1> Welcome to Micro HTTPD! </h1> "+
" <p> Default page " +
" </p> " +
" </body> " +
" </html> "
answer.append_reply_text (html)
end
process_text_file (f: FILE)
-- send a text file reply
require
valid_f: f /= Void
do
f.open_read
from
answer.set_reply_text ("")
f.read_line
until f.end_of_file
loop
answer.append_reply_text (f.last_string)
answer.append_reply_text (crlf)
f.read_line
end
f.close
end
process_raw_file (f: FILE)
-- send a raw file reply
require
valid_f: f /= Void
do
-- this is not quite right....
f.open_read
from
answer.set_reply_text ("")
until f.end_of_file
loop
f.read_stream (1024)
answer.append_reply_text (f.last_string)
end
f.close
end
end

View File

@@ -0,0 +1,53 @@
note
description: "Summary description for {POST_REQUEST_HANDLER}."
author: ""
date: "$Date$"
revision: "$Revision$"
class
POST_REQUEST_HANDLER
inherit
GET_REQUEST_HANDLER
redefine
process
end
create
make
feature -- Execution
process
-- process the request and create an answer
local
l_data: STRING
s: detachable STRING
n: INTEGER
sock: like socket
do
from
n := 1_024
sock := socket
if sock.socket_ok then
sock.read_stream_thread_aware (n)
s := sock.last_string
else
s := Void
end
create l_data.make_empty
until
s = Void or else s.count < n
loop
l_data.append_string (s)
if sock.socket_ok then
sock.read_stream_thread_aware (n)
s := sock.last_string
else
s := Void
end
end
Precursor
end
end

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-9-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-9-0 http://www.eiffel.com/developers/xml/configuration-1-9-0.xsd" name="web_server" uuid="B1D3254D-A58E-4259-9796-8A2843A511A9">
<target name="web_server">
<root class="APPLICATION" feature="make"/>
<file_rule>
<exclude>/.git$</exclude>
<exclude>/EIFGENs$</exclude>
<exclude>/CVS$</exclude>
<exclude>/.svn$</exclude>
</file_rule>
<option debug="true" warning="true" is_attached_by_default="true" void_safety="all" syntax="transitional">
<debug name="nino" enabled="true"/>
<assertions precondition="true" postcondition="true" check="true" invariant="true" loop="true" supplier_precondition="true"/>
</option>
<setting name="concurrency" value="thread"/>
<library name="base" location="$ISE_LIBRARY\library\base\base-safe.ecf"/>
<library name="net" location="$ISE_LIBRARY\library\net\net-safe.ecf"/>
<library name="nino" location="..\..\nino-safe.ecf"/>
<library name="thread" location="$ISE_LIBRARY\library\thread\thread-safe.ecf"/>
<cluster name="src" location=".\" recursive="true"/>
</target>
</system>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-8-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-8-0 http://www.eiffel.com/developers/xml/configuration-1-8-0.xsd" name="web_server" uuid="B1D3254D-A58E-4259-9796-8A2843A511A9">
<target name="web_server">
<root class="APPLICATION" feature="make"/>
<file_rule>
<exclude>/.git$</exclude>
<exclude>/EIFGENs$</exclude>
<exclude>/CVS$</exclude>
<exclude>/.svn$</exclude>
</file_rule>
<option warning="true" is_attached_by_default="true" void_safety="none">
<assertions precondition="true" postcondition="true" check="true" invariant="true" loop="true" supplier_precondition="true"/>
</option>
<setting name="concurrency" value="thread"/>
<library name="base" location="$ISE_LIBRARY\library\base\base.ecf"/>
<library name="net" location="$ISE_LIBRARY\library\net\net.ecf"/>
<library name="nino" location="..\..\nino.ecf"/>
<library name="thread" location="$ISE_LIBRARY\library\thread\thread.ecf"/>
<cluster name="src" location=".\" recursive="true"/>
</target>
</system>

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

View File

@@ -0,0 +1,91 @@
1.4.2
[Feature]
- The plugin support percentages as target ('50%' or {top:'50%', left:'45%'})
- Exposed the max() calculation as $.scrollTo.max
[Enhancement]
- Renamed $.fn.scrollable to $.fn._scrollable to avoid conflicts with other plugins
[Fix]
- Fixing max calculations for regular DOM elements
1.4.1
[Feature]
- The target can be 'max' to scroll to the end while keeping it elegant.
[Enhancement]
- Default duration is 0 for jquery +1.3. Means sync animation
- The plugin works on all major browsers, on compat & quirks modes, including iframes.
- In addition to window/document, if html or body are received, the plugin will choose the right one.
[Fix]
- The plugin accepts floating numbers, Thanks Ramin
- Using jQuery.nodeName where neccessary so that this works on xml+xhtml
- The max() internal function wasn't completely accurrate, now it is 98% (except for IE on quirks mode and it's not too noticeable).
1.4
[Fix]
- Fixed the problem when scrolling the window to absolute positioned elements on Safari.
- Fixed the problem on Opera 9.5 when scrolling the window. That it always scrolls to 0.
[Feature]
- Added the settings object as 2nd argument to the onAfter callback.
- The 3rd argument of scrollTo can be just a function and it's used as the onAfter.
- Added full support for iframes (even max scroll calculation).
- Instead of $.scrollTo, $(window).scrollTo() and $(document).scrollTo() can be used.
- Added $().scrollable() that returns the real element to scroll, f.e: $(window).scrollable() == [body|html], works for iframes.
[Enhancement]
- Cleaned the code a bit, specially the comments
1.3.3
[Change]
- Changed the licensing from GPL to GPL+MIT.
1.3.2
[Enhancement]
- Small improvements to make the code shorter.
[Change]
- Removed the last argument received by onAfter as it was the same as the 'this' but jqueryfied.
1.3.1
[Feature]
- Exposed $.scrollTo.window() to get the element that needs to be animated, to scroll the window.
- Added option 'over'.
[Enhancement]
- Made the code as short as possible.
[Change]
- Changed the arguments received by onAfter
1.3
[Enhancement]
- Added semicolon to the start, for safe file concatenation
- Added a limit check, values below 0 or over the maximum are fixed.
- Now it should work faster, only one of html or body go through all the processing, instead of both for all browsers.
[Fix]
- Fixed the behavior for Opera, which seemed to react to both changes on <html> and <body>.
- The border is also reduced, when 'margin' is set to true.
[Change]
- The option speed has been renamed to duration.
[Feature]
- The duration can be specified with a number as 2nd argument, and the rest of the settings as the third ( like $().animate )
- Remade the demo
1.2.4
[Enhancement]
- The target can be in the form of { top:x, left:y } allowing different position for each axis.
[Feature]
- The option 'offset' has been added, to scroll behind or past the target. Can be a number(both axes) or { top:x, left:y }.
1.2.3
[Feature]
- Exposed the defaults.
[Enhancement]
- Made the callback functions receive more parameters.
1.2.2
[Fix]
- Fixed a bug, I didn't have to add the scrolled amount if it was body or html.
1.2
[Change]
- The option 'onafter' is now called 'onAfter'.
[Feature]
- Two axes can be scrolled together, this is set with the option 'axis'.
- In case 2 axes are chosen, the scrolling can be queued: one scrolls, and then the other.
- There's an intermediary event, 'onAfterFirst' called in case the axes are queued, after the first ends.
- If the option 'margin' is set to true, the plugin will take in account, the margin of the target(no use if target is a value).

View File

@@ -0,0 +1,11 @@
/**
* jQuery.ScrollTo - Easy element scrolling using jQuery.
* Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 5/25/2009
* @author Ariel Flesler
* @version 1.4.2
*
* http://flesler.blogspot.com/2007/10/jqueryscrollto.html
*/
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

View File

@@ -0,0 +1,215 @@
/**
* jQuery.ScrollTo
* Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 5/25/2009
*
* @projectDescription Easy element scrolling using jQuery.
* http://flesler.blogspot.com/2007/10/jqueryscrollto.html
* Works with jQuery +1.2.6. Tested on FF 2/3, IE 6/7/8, Opera 9.5/6, Safari 3, Chrome 1 on WinXP.
*
* @author Ariel Flesler
* @version 1.4.2
*
* @id jQuery.scrollTo
* @id jQuery.fn.scrollTo
* @param {String, Number, DOMElement, jQuery, Object} target Where to scroll the matched elements.
* The different options for target are:
* - A number position (will be applied to all axes).
* - A string position ('44', '100px', '+=90', etc ) will be applied to all axes
* - A jQuery/DOM element ( logically, child of the element to scroll )
* - A string selector, that will be relative to the element to scroll ( 'li:eq(2)', etc )
* - A hash { top:x, left:y }, x and y can be any kind of number/string like above.
* - A percentage of the container's dimension/s, for example: 50% to go to the middle.
* - The string 'max' for go-to-end.
* @param {Number} duration The OVERALL length of the animation, this argument can be the settings object instead.
* @param {Object,Function} settings Optional set of settings or the onAfter callback.
* @option {String} axis Which axis must be scrolled, use 'x', 'y', 'xy' or 'yx'.
* @option {Number} duration The OVERALL length of the animation.
* @option {String} easing The easing method for the animation.
* @option {Boolean} margin If true, the margin of the target element will be deducted from the final position.
* @option {Object, Number} offset Add/deduct from the end position. One number for both axes or { top:x, left:y }.
* @option {Object, Number} over Add/deduct the height/width multiplied by 'over', can be { top:x, left:y } when using both axes.
* @option {Boolean} queue If true, and both axis are given, the 2nd axis will only be animated after the first one ends.
* @option {Function} onAfter Function to be called after the scrolling ends.
* @option {Function} onAfterFirst If queuing is activated, this function will be called after the first scrolling ends.
* @return {jQuery} Returns the same jQuery object, for chaining.
*
* @desc Scroll to a fixed position
* @example $('div').scrollTo( 340 );
*
* @desc Scroll relatively to the actual position
* @example $('div').scrollTo( '+=340px', { axis:'y' } );
*
* @dec Scroll using a selector (relative to the scrolled element)
* @example $('div').scrollTo( 'p.paragraph:eq(2)', 500, { easing:'swing', queue:true, axis:'xy' } );
*
* @ Scroll to a DOM element (same for jQuery object)
* @example var second_child = document.getElementById('container').firstChild.nextSibling;
* $('#container').scrollTo( second_child, { duration:500, axis:'x', onAfter:function(){
* alert('scrolled!!');
* }});
*
* @desc Scroll on both axes, to different values
* @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
*/
;(function( $ ){
var $scrollTo = $.scrollTo = function( target, duration, settings ){
$(window).scrollTo( target, duration, settings );
};
$scrollTo.defaults = {
axis:'xy',
duration: parseFloat($.fn.jquery) >= 1.3 ? 0 : 1
};
// Returns the element that needs to be animated to scroll the window.
// Kept for backwards compatibility (specially for localScroll & serialScroll)
$scrollTo.window = function( scope ){
return $(window)._scrollable();
};
// Hack, hack, hack :)
// Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
$.fn._scrollable = function(){
return this.map(function(){
var elem = this,
isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) != -1;
if( !isWin )
return elem;
var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem;
return $.browser.safari || doc.compatMode == 'BackCompat' ?
doc.body :
doc.documentElement;
});
};
$.fn.scrollTo = function( target, duration, settings ){
if( typeof duration == 'object' ){
settings = duration;
duration = 0;
}
if( typeof settings == 'function' )
settings = { onAfter:settings };
if( target == 'max' )
target = 9e9;
settings = $.extend( {}, $scrollTo.defaults, settings );
// Speed is still recognized for backwards compatibility
duration = duration || settings.speed || settings.duration;
// Make sure the settings are given right
settings.queue = settings.queue && settings.axis.length > 1;
if( settings.queue )
// Let's keep the overall duration
duration /= 2;
settings.offset = both( settings.offset );
settings.over = both( settings.over );
return this._scrollable().each(function(){
var elem = this,
$elem = $(elem),
targ = target, toff, attr = {},
win = $elem.is('html,body');
switch( typeof targ ){
// A number will pass the regex
case 'number':
case 'string':
if( /^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ) ){
targ = both( targ );
// We are done
break;
}
// Relative selector, no break!
targ = $(targ,this);
case 'object':
// DOMElement / jQuery
if( targ.is || targ.style )
// Get the real position of the target
toff = (targ = $(targ)).offset();
}
$.each( settings.axis.split(''), function( i, axis ){
var Pos = axis == 'x' ? 'Left' : 'Top',
pos = Pos.toLowerCase(),
key = 'scroll' + Pos,
old = elem[key],
max = $scrollTo.max(elem, axis);
if( toff ){// jQuery / DOMElement
attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );
// If it's a dom element, reduce the margin
if( settings.margin ){
attr[key] -= parseInt(targ.css('margin'+Pos)) || 0;
attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0;
}
attr[key] += settings.offset[pos] || 0;
if( settings.over[pos] )
// Scroll to a fraction of its width/height
attr[key] += targ[axis=='x'?'width':'height']() * settings.over[pos];
}else{
var val = targ[pos];
// Handle percentage values
attr[key] = val.slice && val.slice(-1) == '%' ?
parseFloat(val) / 100 * max
: val;
}
// Number or 'number'
if( /^\d+$/.test(attr[key]) )
// Check the limits
attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max );
// Queueing axes
if( !i && settings.queue ){
// Don't waste time animating, if there's no need.
if( old != attr[key] )
// Intermediate animation
animate( settings.onAfterFirst );
// Don't animate this axis again in the next iteration.
delete attr[key];
}
});
animate( settings.onAfter );
function animate( callback ){
$elem.animate( attr, duration, settings.easing, callback && function(){
callback.call(this, target, settings);
});
};
}).end();
};
// Max scrolling position, works on quirks mode
// It only fails (not too badly) on IE, quirks mode.
$scrollTo.max = function( elem, axis ){
var Dim = axis == 'x' ? 'Width' : 'Height',
scroll = 'scroll'+Dim;
if( !$(elem).is('html,body') )
return elem[scroll] - $(elem)[Dim.toLowerCase()]();
var size = 'client' + Dim,
html = elem.ownerDocument.documentElement,
body = elem.ownerDocument.body;
return Math.max( html[scroll], body[scroll] )
- Math.min( html[size] , body[size] );
};
function both( val ){
return typeof val == 'object' ? val : { top:val, left:val };
};
})( jQuery );

View File

@@ -0,0 +1,12 @@
$(document).ready(function(){
/* This code is executed after the DOM has been completely loaded */
$('nav a,footer a.up').click(function(e){
// If a link has been clicked, scroll the page to the link's hash target:
$.scrollTo( this.hash || 0, 1500);
e.preventDefault();
});
});

View File

@@ -0,0 +1,219 @@
*{
/* Universal reset: */
margin:0;
padding:0;
}
header,footer,
article,section,
hgroup,nav,
figure{
/* Giving a display value to the HTML5 rendered elements: */
display:block;
}
body{
/* Setting the default text color, size, page background and a font stack: */
font-size:0.825em;
color:#fcfcfc;
background-color:#355664;
font-family:Arial, Helvetica, sans-serif;
}
/* Hyperlink Styles: */
a, a:visited {
color:#0196e3;
text-decoration:none;
outline:none;
}
a:hover{
text-decoration:underline;
}
a img{
border:none;
}
/* Headings: */
h1,h2,h3{
font-family:"Myriad Pro","Helvetica Neue",Helvetica,Arial,Sans-Serif;
text-shadow:0 1px 1px black;
}
h1{
/* The logo text */
font-size:3.5em;
padding:0.5em 0 0;
text-transform:uppercase;
}
h3{
/* The slogan text */
font-family:forte,"Myriad Pro","Helvetica Neue",Helvetica,Arial,Sans-Serif;
font-size:2em;
font-weight:normal;
margin:0 0 1em;
}
h2{
font-size:2.2em;
font-weight:normal;
letter-spacing:0.01em;
text-transform:uppercase;
}
p{
line-height:1.5em;
padding-bottom:1em;
}
.line{
/* The dividing line: */
height:1px;
background-color:#24404c;
border-bottom:1px solid #416371;
margin:1em 0;
overflow:hidden;
}
article .line{
/* The dividing line inside of the article is darker: */
background-color:#15242a;
border-bottom-color:#204656;
margin:1.3em 0;
}
footer .line{
margin:2em 0;
}
nav{
background:url(img/gradient_light.jpg) repeat-x 50% 50% #f8f8f8;
padding:0 5px;
position:absolute;
right:0;
top:4em;
border:1px solid #FCFCFC;
-moz-box-shadow:0 1px 1px #333333;
-webkit-box-shadow:0 1px 1px #333333;
box-shadow:0 1px 1px #333333;
}
/* The clearfix hack to clear the floats: */
.clear:after{
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
/* The navigation styling: */
nav ul li{
display:inline;
}
nav ul li a,
nav ul li a:visited{
color:#565656;
display:block;
float:left;
font-size:1.25em;
font-weight:bold;
margin:5px 2px;
padding:7px 10px 4px;
text-shadow:0 1px 1px white;
text-transform:uppercase;
}
nav ul li a:hover{
text-decoration:none;
background-color:#f0f0f0;
}
nav, article, nav ul li a,figure{
/* Applying CSS3 rounded corners: */
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
}
/* Article styles: */
#page{
width:960px;
margin:0 auto;
position:relative;
}
article{
background-color:#213E4A;
margin:3em 0;
padding:20px;
text-shadow:0 2px 0 black;
}
figure{
border:3px solid #142830;
float:right;
height:300px;
margin-left:15px;
overflow:hidden;
width:500px;
}
figure:hover{
-moz-box-shadow:0 0 2px #4D7788;
-webkit-box-shadow:0 0 2px #4D7788;
box-shadow:0 0 2px #4D7788;
}
figure img{
margin-left:-60px;
}
/* Footer styling: */
footer{
margin-bottom:30px;
text-align:center;
font-size:0.825em;
}
footer p{
margin-bottom:-2.5em;
position:relative;
}
footer a,footer a:visited{
color:#cccccc;
background-color:#213e4a;
display:block;
padding:2px 4px;
z-index:100;
position:relative;
}
footer a:hover{
text-decoration:none;
background-color:#142830;
}
footer a.by{
float:left;
}
footer a.up{
float:right;
}

View File

@@ -0,0 +1,139 @@
<!DOCTYPE html> <!-- The new doctype -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Coding A CSS3 &amp; HTML5 One Page Template | Tutorialzine demo</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
<!-- Internet Explorer HTML5 enabling code: -->
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<style type="text/css">
.clear {
zoom: 1;
display: block;
}
</style>
<![endif]-->
</head>
<body>
<section id="page"> <!-- Defining the #page section with the section tag -->
<header> <!-- Defining the header section of the page with the appropriate tag -->
<hgroup>
<h1>Your Logo</h1>
<h3>and a fancy slogan</h3>
</hgroup>
<nav class="clear"> <!-- The nav link semantically marks your main site navigation -->
<ul>
<li><a href="#article1">Photoshoot</a></li>
<li><a href="#article2">Sweet Tabs</a></li>
<li><a href="#article3">Navigation Menu</a></li>
</ul>
</nav>
</header>
<section id="articles"> <!-- A new section with the articles -->
<!-- Article 1 start -->
<div class="line"></div> <!-- Dividing line -->
<article id="article1"> <!-- The new article tag. The id is supplied so it can be scrolled into view. -->
<h2>Photoshoot Effect</h2>
<div class="line"></div>
<div class="articleBody clear">
<figure> <!-- The figure tag marks data (usually an image) that is part of the article -->
<a href="http://tutorialzine.com/2010/02/photo-shoot-css-jquery/"><img src="http://tutorialzine.com/img/featured/641.jpg" width="620" height="340" /></a>
</figure>
<p>In this tutorial, we are creating a photo shoot effect with our just-released PhotoShoot jQuery plug-in. With it you can convert a regular div on the page into a photo shooting stage simulating a camera-like feel.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer luctus quam quis nibh fringilla sit amet consectetur lectus malesuada. Sed nec libero erat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc mi nisi, rhoncus ut vestibulum ac, sollicitudin quis lorem. Duis felis dui, vulputate nec adipiscing nec, interdum vel tortor. Sed gravida, erat nec rutrum tincidunt, metus mauris imperdiet nunc, et elementum tortor nunc at eros. Donec malesuada congue molestie. Suspendisse potenti. Vestibulum cursus congue sem et feugiat. Morbi quis elit odio. </p>
</div>
</article>
<!-- Article 1 end -->
<!-- Article 2 start -->
<div class="line"></div>
<article id="article2">
<h2>Sweet AJAX Tabs</h2>
<div class="line"></div>
<div class="articleBody clear">
<figure>
<a href="http://tutorialzine.com/2010/01/sweet-tabs-jquery-ajax-css/"><img src="http://tutorialzine.com/img/featured/633.jpg" width="620" height="340" /></a>
</figure>
<p>Here we are making sweet AJAX-powered tabs with CSS3 and the newly released version 1.4 of jQuery.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer luctus quam quis nibh fringilla sit amet consectetur lectus malesuada. Sed nec libero erat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc mi nisi, rhoncus ut vestibulum ac, sollicitudin quis lorem. Duis felis dui, vulputate nec adipiscing nec, interdum vel tortor. Sed gravida, erat nec rutrum tincidunt, metus mauris imperdiet nunc, et elementum tortor nunc at eros. Donec malesuada congue molestie. Suspendisse potenti. Vestibulum cursus congue sem et feugiat. Morbi quis elit odio. </p>
</div>
</article>
<!-- Article 2 end -->
<!-- Article 3 start -->
<div class="line"></div>
<article id="article3">
<h2>Halftone Navigation Menu</h2>
<div class="line"></div>
<div class="articleBody clear">
<figure>
<a href="http://tutorialzine.com/2010/01/halftone-navigation-menu-jquery-css/"><img src="http://tutorialzine.com/img/featured/610.jpg" width="620" height="340" /></a>
</figure>
<p>Today we are making a CSS3 & jQuery halftone-style navigation menu, which will allow you to display animated halftone-style shapes in accordance with the navigation links, and will provide a simple editor for creating additional shapes as well.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer luctus quam quis nibh fringilla sit amet consectetur lectus malesuada. Sed nec libero erat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc mi nisi, rhoncus ut vestibulum ac, sollicitudin quis lorem. Duis felis dui, vulputate nec adipiscing nec, interdum vel tortor. Sed gravida, erat nec rutrum tincidunt, metus mauris imperdiet nunc, et elementum tortor nunc at eros. Donec malesuada congue molestie. Suspendisse potenti. Vestibulum cursus congue sem et feugiat. Morbi quis elit odio. </p>
</div>
</article>
<!-- Article 3 end -->
</section>
<footer> <!-- Marking the footer section -->
<div class="line"></div>
<p>Copyright 2010 - YourSite.com</p> <!-- Change the copyright notice -->
<a href="#" class="up">Go UP</a>
<a href="http://tutorialzine.com/2010/02/html5-css3-website-template/" class="by">Template by Tutorialzine</a>
</footer>
</section> <!-- Closing the #page section -->
<!-- JavaScript Includes -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script src="jquery.scrollTo-1.4.2/jquery.scrollTo-min.js"></script>
<script src="script.js"></script>
</body>
</html>

View File

@@ -0,0 +1,43 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Halftone Navigation Menu With jQuery &amp; CSS3 | Tutorialzine demo</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1>Halftone Navigation Menu With jQuery &amp; CSS3</h1>
<h2>View the <a href="http://tutorialzine.com/2010/01/halftone-navigation-menu-jquery-css/">original tutorial &raquo;</a></h2>
<div id="main">
<div id="navigation">
<ul class="menuUL">
<!-- The class names that are assigned to the links correspond to name of the shape that is shown on hover: -->
<li><a href="#" class="house">Home</a></li>
<li><a href="#" class="wrench">Services</a></li>
<li><a href="#" class="envelope">Contact</a></li>
<li><a href="#" class="info">About</a></li>
</ul>
<div class="clear"></div>
</div>
<div id="stage">
<!-- The dot divs are shown here -->
</div>
</div>
<p class="tutInfo">This is a tutorialzine demo. View the <a href="http://tutorialzine.com/2010/01/halftone-navigation-menu-jquery-css/">original tutorial</a>, or download the <a href="demo.zip">source files</a>.</p>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

View File

@@ -0,0 +1,121 @@
/* Set serviceMode to true to create your own shapes: */
var serviceMode = false;
$(document).ready(function(){
/* This code is executed after the DOM has been completely loaded */
var str=[];
var perRow = 16;
/* Generating the dot divs: */
for(var i=0;i<192;i++)
{
str.push('<div class="dot" id="d-'+i+'" />');
}
/* Joining the array into a string and adding it to the inner html of the stage div: */
$('#stage').html(str.join(''));
/* Using the hover method: */
$('#navigation li a').hover(function(e){
/* serviceDraw is a cut-out version of the draw function, used for shape editing and composing: */
if(serviceMode)
serviceDraw($(this).attr('class'));
else
draw($(this).attr('class'));
}, function(e){
});
/* Caching the dot divs into a variable for performance: */
dots = $('.dot');
if(serviceMode)
{
/* If we are in service mode, show borders around the dot divs, add the export link, and listen for clicks: */
dots.css({
border:'1px solid black',
width:dots.eq(0).width()-2,
height:dots.eq(0).height()-2,
cursor:'pointer'
})
$('<div/>').css({
position:'absolute',
bottom:-20,
right:0
}).html('<a href="" onclick="outputString();return false;">[Export Shape]</a>').appendTo('#stage');
dots.click(function(){
$(this).toggleClass('active');
});
}
});
var shapes={
/* Each shape is described by an array of points. You can add your own shapes here,
just don't forget to add a coma after each array, except for the last one */
house:[22,37,38,39,52,53,54,55,56,67,68,69,70,71,72,73,82,83,84,85,86,87,88,89,90,99,100,104,105,115,116,120,121,131,132,136,137,147,148,150,151,152,153,163,164,166,167,168,169],
wrench:[22,23,24,25,26,27,38,39,40,41,42,43,54,55,58,59,70,71,86,87,88,89,101,102,103,104,105,116,117,118,131,132,133,146,147,148,163],
envelope:[34,35,36,37,38,39,40,41,42,43,44,50,51,52,58,59,60,66,68,69,73,74,76,82,85,86,88,89,92,98,102,103,104,108,114,119,124,130,140,146,147,148,149,150,151,152,153,154,155,156],
info:[22,23,38,39,69,70,71,86,87,102,103,118,119,134,135,150,151,166,167,168]
}
var stopCounter = 0;
var dots;
function draw(shape)
{
/* This function draws a shape from the shapes object */
stopCounter++;
var currentCounter = stopCounter;
dots.removeClass('active').css('opacity',0);
$.each(shapes[shape],function(i,j){
setTimeout(function(){
/* If a different shape animaton has been started during the showing of the current one, exit the function */
if(currentCounter!=stopCounter) return false;
dots.eq(j).addClass('active').fadeTo('slow',0.4);
/* The fade animation is scheduled for 10*i millisecond in the future: */
},10*i);
});
}
function serviceDraw(shape)
{
/* A cut out version of the draw function, used in service mode */
dots.removeClass('active');
$.each(shapes[shape],function(i,j){
dots.eq(j).addClass('active');
});
}
function outputString()
{
/* Outputs the positions of the active dot divs as a comma-separated string: */
var str=[];
$('.dot.active').each(function(){
str.push(this.id.replace('d-',''));
})
prompt('Insert this string as an array in the shapes object',str.join(','));
}

View File

@@ -0,0 +1,148 @@
body,h1,h2,h3,p,quote,small,form,input,ul,li,ol,label{
/* Simple page reset */
margin:0;
padding:0;
}
body{
/* Setting default text color, background and a font stack */
color:#cccccc;
font-size:0.825em;
background: url(img/background.jpg) no-repeat center top #252525;
font-family:Arial, Helvetica, sans-serif;
}
.menuUL li{
/* This will arrange the LI-s next to each other */
display:inline;
}
.menuUL li a,.menuUL li a:visited{
/* Styling the hyperlinks of the menu as buttons */
float:left;
font-weight:bold;
background:url(img/button_bg.jpg) repeat-x center bottom #666666;
/* display:block allows for additinal CSS rules to take effect, such as paddings: */
display:block;
border:1px solid #4D4D4D;
color:#CCCCCC;
border-top-color:#565656;
padding:4px 6px;
margin:4px 5px;
height:16px;
/* Setting a CSS3 box shadow around the button */
-moz-box-shadow:0 0 1px black;
-webkit-box-shadow:0 0 1px black;
box-shadow:0 0 1px black;
/* CSS3 text shadow */
text-shadow:0 1px black;
}
.menuUL li a:hover{
/* On hover show the top, lighter, part of the background: */
background-position:center top;
text-decoration:none;
}
#navigation{
/* The navigation menu bar: */
background:#222222;
border:1px solid #111111;
float:left;
padding:5px 10px;
}
#navigation,.menuUL li a{
/* CSS3 rounded corners for both the navigation bar and the buttons: */
-moz-border-radius:4px;
-webkit-border-radius:4px;
-khtml-border-radius:4px;
border-radius:4px;
}
#stage{
/* The stage contains the individual divs that comprise the halftone icon: */
height:300px;
position:absolute;
right:50px;
top:20px;
width:400px;
}
.dot{
/* The stage contains 192 .dot divs: */
float:left;
height:25px;
width:25px;
}
.dot.active{
/* When assigned the active class, the div shows a background image of a dot: */
background:url(img/dot.png) no-repeat center center;
}
.clear{
/* Old-school clear fix hack to clear the floats: */
clear:both;
}
#main{
margin:0 auto;
position:relative;
width:900px;
}
/* The styles below are only necessary for the demo page */
h1{
background:#222222;
border-bottom:1px solid black;
font-size:1.5em;
font-weight:normal;
margin-bottom:15px;
padding:15px;
text-align:center;
}
h2 {
font-size:0.9em;
font-weight:normal;
padding-right:40px;
position:relative;
right:0;
text-align:right;
text-transform:uppercase;
top:-48px;
}
a, a:visited {
color:#0196e3;
text-decoration:none;
outline:none;
}
a:hover{
text-decoration:underline;
}
p.tutInfo{
/* The tutorial info on the bottom of the page */
padding:10px 0;
text-align:center;
position:absolute;
bottom:0px;
background:#222222;
border-top:1px solid black;
width:100%;
}
h1,h2,p.tutInfo{
font-family:"Myriad Pro",Arial,Helvetica,sans-serif;
}

View File

@@ -0,0 +1,153 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Business Co.</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link href="css/styles.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>
<body onload="MM_preloadImages('images/btn_1_over.jpg','images/btn_2_over.jpg','images/btn_3_over.jpg','images/btn_4_over.jpg','images/btn_5_over.jpg', 'images/btn_6_over.jpg');">
<!-- Save for Web Slices (index.psd) -->
<table width="775" height="700" border="0" align="center" cellpadding="0" cellspacing="0" id="table_01">
<tr>
<td width="59" height="0" nowrap="nowrap"></td>
<td width="19" height="0" nowrap="nowrap"></td>
<td width="4" height="0" nowrap="nowrap"></td>
<td width="23" height="0" nowrap="nowrap"></td>
<td width="83" height="0" nowrap="nowrap"></td>
<td width="3" height="0" nowrap="nowrap"></td>
<td width="8" height="0" nowrap="nowrap"></td>
<td width="10" height="0" nowrap="nowrap"></td>
<td width="31" height="0" nowrap="nowrap"></td>
<td width="47" height="0" nowrap="nowrap"></td>
<td width="4" height="0" nowrap="nowrap"></td>
<td width="3" height="0" nowrap="nowrap"></td>
<td width="98" height="0" nowrap="nowrap"></td>
<td width="3" height="0" nowrap="nowrap"></td>
<td width="66" height="0" nowrap="nowrap"></td>
<td width="31" height="0" nowrap="nowrap"></td>
<td width="10" height="0" nowrap="nowrap"></td>
<td width="3" height="0" nowrap="nowrap"></td>
<td width="3" height="0" nowrap="nowrap"></td>
<td width="5" height="0" nowrap="nowrap"></td>
<td width="89" height="0" nowrap="nowrap"></td>
<td width="3" height="0" nowrap="nowrap"></td>
<td width="15" height="0" nowrap="nowrap"></td>
<td width="57" height="0" nowrap="nowrap"></td>
<td width="21" height="0" nowrap="nowrap"></td>
<td width="17" height="0" nowrap="nowrap"></td>
<td width="60" height="0" nowrap="nowrap"></td>
<td width="0" height="0"></td>
</tr>
<tr>
<td width="59" height="651" rowspan="15">
<img src="images/main.jpg" width="59" height="651" alt="" /></td>
<td width="561" height="33" colspan="22" align="left" valign="middle" bgcolor="#efefef" class="text3" style="padding-left:20px">SEPTEMBER 29, 2009 </td>
<td width="95" height="33" colspan="3" align="left" valign="top"><a href="#"><img src="images/client_login.jpg" alt="" width="95" height="33" border="0" /></a></td>
<td width="60" height="651" rowspan="15">
<img src="images/main-03.jpg" width="60" height="651" alt="" /></td>
<td width="0" height="33" nowrap="nowrap"></td>
</tr>
<tr>
<td width="656" height="21" colspan="25" align="left" valign="top" nowrap="nowrap" bgcolor="#a7a7a7"></td>
<td width="0" height="21" nowrap="nowrap"></td>
</tr>
<tr>
<td width="23" height="17" colspan="2" align="left" valign="top" nowrap="nowrap" bgcolor="#a7a7a7"></td>
<td width="106" height="17" colspan="2" align="left" valign="top" bgcolor="#a7a7a7"><a href="index.html"><img src="images/btn_1.jpg" alt="" name="btn_1" width="106" height="17" border="0" id="btn_1" onmouseover="MM_swapImage('btn_1','','images/btn_1_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#a7a7a7">
<img src="images/lines.jpg" width="3" height="17" alt="" /></td>
<td width="100" height="17" colspan="5" align="left" valign="top" bgcolor="#a7a7a7"><a href="contentpage.html"><img src="images/btn_2.jpg" alt="" name="btn_2" width="100" height="17" border="0" id="btn_2" onmouseover="MM_swapImage('btn_2','','images/btn_2_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#a7a7a7">
<img src="images/lines-07.jpg" width="3" height="17" alt="" /></td>
<td width="98" height="17" align="left" valign="top" bgcolor="#a7a7a7"><a href="contentpage.html"><img src="images/btn_3.jpg" alt="" name="btn_3" width="98" height="17" border="0" id="btn_3" onmouseover="MM_swapImage('btn_3','','images/btn_3_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#a7a7a7">
<img src="images/lines-09.jpg" width="3" height="17" alt="" /></td>
<td width="107" height="17" colspan="3" align="left" valign="top" bgcolor="#a7a7a7"><a href="contentpage.html"><img src="images/btn_4.jpg" alt="" name="btn_4" width="107" height="17" border="0" id="btn_4" onmouseover="MM_swapImage('btn_4','','images/btn_4_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#a7a7a7">
<img src="images/lines-11.jpg" width="3" height="17" alt="" /></td>
<td width="97" height="17" colspan="3" align="left" valign="top" bgcolor="#a7a7a7"><a href="contentpage.html"><img src="images/btn_5.jpg" alt="" name="btn_5" width="97" height="17" border="0" id="btn_5" onmouseover="MM_swapImage('btn_5','','images/btn_5_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#a7a7a7">
<img src="images/lines-13.jpg" width="3" height="17" alt="" /></td>
<td width="93" height="17" colspan="3" align="left" valign="top" bgcolor="#a7a7a7"><a href="contentpage.html"><img src="images/btn_6.jpg" alt="" name="btn_6" width="93" height="17" border="0" id="btn_6" onmouseover="MM_swapImage('btn_6','','images/btn_6_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="17" height="17" align="left" valign="top" nowrap="nowrap" bgcolor="#a7a7a7"></td>
<td width="0" height="17" nowrap="nowrap"></td>
</tr>
<tr>
<td width="656" height="19" colspan="25" align="left" valign="top" nowrap="nowrap" bgcolor="#a7a7a7"></td>
<td width="0" height="19" nowrap="nowrap"></td>
</tr>
<tr>
<td width="656" height="240" colspan="25" align="left" valign="top">
<img src="images/main-15.jpg" width="656" height="240" alt="" /></td>
<td width="0" height="240" nowrap="nowrap"></td>
</tr>
<tr>
<td width="656" height="321" colspan="25" rowspan="10" align="center" valign="middle" nowrap="nowrap" bgcolor="#efefef" class="text1">Content Page</td>
<td width="0" height="7" nowrap="nowrap"></td>
</tr>
<tr>
<td width="0" height="43" nowrap="nowrap"></td>
</tr>
<tr>
<td width="0" height="56" nowrap="nowrap"></td>
</tr>
<tr>
<td width="0" height="26" nowrap="nowrap"></td>
</tr>
<tr>
<td width="0" height="12" nowrap="nowrap"></td>
</tr>
<tr>
<td width="0" height="17" nowrap="nowrap"></td>
</tr>
<tr>
<td width="0" height="23" nowrap="nowrap"></td>
</tr>
<tr>
<td width="0" height="22" nowrap="nowrap"></td>
</tr>
<tr>
<td width="0" height="58" nowrap="nowrap"></td>
</tr>
<tr>
<td width="0" height="57" nowrap="nowrap"></td>
</tr>
<tr>
<td width="775" height="49" colspan="27" align="center" valign="middle" class="text2" style="background:url(images/b_footer.jpg)"><a href="index.html">HOME</a> | <a href="contentpage.html">ABOUT US</a> | <a href="contentpage.html">SERVICES</a> | <a href="contentpage.html">SOLUTIONS</a> | <a href="contentpage.html">SUPPORT</a> | <a href="contentpage.html">CONTACTS</a><br />
<span class="text3">Copyright &copy; Your Company Name</span><br/>
Design by <a href="http://www.templatesbox.com" target="_blank" class="adv">Templates</a> Box. Create a <a href="http://www.wix.com" target="_blank" class="adv">free website</a>.
</td>
<td width="0" height="49" nowrap="nowrap"></td>
</tr>
</table>
<!-- End Save for Web Slices -->
</body>
</html>

View File

@@ -0,0 +1,160 @@
body{
padding:0px;
margin:0px;
background:#c7c7c7;
color:#848484;
font:10px/14px Tahoma, sans-serif;
}
div, p, ul, h2, h3, h4, img, form{padding:0px; margin:0px;}
ul{list-style-type:none;}
.clear{
clear:both;
}
.frame {
border: 1px solid #D5E6E0;
}
.text1 {
font: 11px/14px "Trebuchet MS", Arial, Helvetica, sans-serif;
color:#000;
font-weight:bold;
}
.text2 {
font: 11px/14px Tahoma, Geneva, sans-serif;
color:#000;
font-weight:normal;
}
.text3 {
font: 10px/14px Tahoma, Geneva, sans-serif;
color:#000;
font-weight:normal;
}
.text4 {
font: 10px/12px Tahoma, Geneva, sans-serif;
color:#052578;
font-weight:bold;
}
.text5 {
font: 10px/12px Tahoma, Geneva, sans-serif;
color:#052578;
font-weight:bold;
}
a:link {
font: 11px/14px Tahoma, Geneva, sans-serif;
color:#000;
font-weight:normal;
text-decoration:none;
}
a:visited{
font: 11px/14px Tahoma, Geneva, sans-serif;
color:#000;
font-weight:normal;
text-decoration:none;
}
a:hover {
font: 11px/14px Tahoma, Geneva, sans-serif;
color:#000;
font-weight:normal;
text-decoration:underline;
}
a.a:link {
font: 10px/14px Tahoma, Geneva, sans-serif;
color:#19a1cb;
font-weight:normal;
text-decoration:underline;
}
a.a:visited{
font: 10px/14px Tahoma, Geneva, sans-serif;
color:#19a1cb;
font-weight:normal;
text-decoration:underline;
}
a.a:hover {
font: 10px/14px Tahoma, Geneva, sans-serif;
color:#000;
font-weight:normal;
text-decoration:none;
}
a.b:link {
font: 10px/18px Tahoma, Geneva, sans-serif;
color:#848484;
font-weight:normal;
text-decoration:underline;
}
a.b:visited{
font: 10px/18px Tahoma, Geneva, sans-serif;
color:#848484;
font-weight:normal;
text-decoration:underline;
}
a.b:hover {
font: 10px/18px Tahoma, Geneva, sans-serif;
color:#000;
font-weight:normal;
text-decoration:none;
}
a.c:link {
font: 10px/12px Tahoma, Geneva, sans-serif;
color:#FFF;
font-weight:normal;
text-decoration:none;
}
a.c:visited{
font: 10px/12px Tahoma, Geneva, sans-serif;
color:#FFF;
font-weight:normal;
text-decoration:none;
}
a.c:hover {
font: 10px/12px Tahoma, Geneva, sans-serif;
color:#FFF;
font-weight:normal;
text-decoration:underline;
}
a.d:link {
font: 10px/12px Tahoma, Geneva, sans-serif;
color:#FFF;
font-weight:normal;
text-decoration:none;
}
a.d:visited{
font: 10px/12px Tahoma, Geneva, sans-serif;
color:#FFF;
font-weight:normal;
text-decoration:none;
}
a.d:hover {
font: 10px/12px Tahoma, Geneva, sans-serif;
color:#FFF;
font-weight:normal;
text-decoration:underline;
}
input, textarea, select{
border:#fff 1px solid;
background-color:#d6e6e0;
font:10px/12px Tahoma, sans-serif; color:#000;
}
a.adv:link {text-decoration: none; font-weight:bold; color:#000;}
a.adv:hover {text-decoration: none; font-weight:bold; color:#000;}
a.adv:visited {text-decoration: none; font-weight:bold; color:#000;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1004 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1014 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 872 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,197 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Business Co.</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/styles.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>
<body onload="MM_preloadImages('images/btn_1_over.jpg','images/btn_2_over.jpg','images/btn_3_over.jpg','images/btn_4_over.jpg','images/btn_5_over.jpg', 'images/btn_6_over.jpg')">
<!-- Save for Web Slices (index.psd) -->
<table width="775" height="700" border="0" align="center" cellpadding="0" cellspacing="0" id="Table_01">
<tr>
<td width="59" height="0" nowrap></td>
<td width="19" height="0" nowrap></td>
<td width="4" height="0" nowrap></td>
<td width="23" height="0" nowrap></td>
<td width="83" height="0" nowrap></td>
<td width="3" height="0" nowrap></td>
<td width="8" height="0" nowrap></td>
<td width="10" height="0" nowrap></td>
<td width="31" height="0" nowrap></td>
<td width="47" height="0" nowrap></td>
<td width="4" height="0" nowrap></td>
<td width="3" height="0" nowrap></td>
<td width="98" height="0" nowrap></td>
<td width="3" height="0" nowrap></td>
<td width="66" height="0" nowrap></td>
<td width="31" height="0" nowrap></td>
<td width="10" height="0" nowrap></td>
<td width="3" height="0" nowrap></td>
<td width="3" height="0" nowrap></td>
<td width="5" height="0" nowrap></td>
<td width="89" height="0" nowrap></td>
<td width="3" height="0" nowrap></td>
<td width="15" height="0" nowrap></td>
<td width="57" height="0" nowrap></td>
<td width="21" height="0" nowrap></td>
<td width="17" height="0" nowrap></td>
<td width="60" height="0" nowrap></td>
<td width="0" height="0"></td>
</tr>
<tr>
<td width="59" height="651" rowspan="15">
<img src="images/main.jpg" width="59" height="651" alt="" /></td>
<td width="561" height="33" colspan="22" align="left" valign="middle" bgcolor="#EFEFEF" class="text3" style="padding-left:20px">SEPTEMBER 29, 2009 </td>
<td width="95" height="33" colspan="3" align="left" valign="top"><a href="#"><img src="images/client_login.jpg" alt="" width="95" height="33" border="0" /></a></td>
<td width="60" height="651" rowspan="15">
<img src="images/main-03.jpg" width="60" height="651" alt="" /></td>
<td width="0" height="33" nowrap></td>
</tr>
<tr>
<td width="656" height="21" colspan="25" align="left" valign="top" nowrap bgcolor="#A7A7A7"></td>
<td width="0" height="21" nowrap></td>
</tr>
<tr>
<td width="23" height="17" colspan="2" align="left" valign="top" nowrap bgcolor="#A7A7A7"></td>
<td width="106" height="17" colspan="2" align="left" valign="top" bgcolor="#A7A7A7"><a href="index.html"><img src="images/btn_1.jpg" alt="" name="btn_1" width="106" height="17" border="0" id="btn_1" onmouseover="MM_swapImage('btn_1','','images/btn_1_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#A7A7A7">
<img src="images/lines.jpg" width="3" height="17" alt="" /></td>
<td width="100" height="17" colspan="5" align="left" valign="top" bgcolor="#A7A7A7"><a href="contentpage.html"><img src="images/btn_2.jpg" alt="" name="btn_2" width="100" height="17" border="0" id="btn_2" onmouseover="MM_swapImage('btn_2','','images/btn_2_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#A7A7A7">
<img src="images/lines-07.jpg" width="3" height="17" alt="" /></td>
<td width="98" height="17" align="left" valign="top" bgcolor="#A7A7A7"><a href="contentpage.html"><img src="images/btn_3.jpg" alt="" name="btn_3" width="98" height="17" border="0" id="btn_3" onmouseover="MM_swapImage('btn_3','','images/btn_3_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#A7A7A7">
<img src="images/lines-09.jpg" width="3" height="17" alt="" /></td>
<td width="107" height="17" colspan="3" align="left" valign="top" bgcolor="#A7A7A7"><a href="contentpage.html"><img src="images/btn_4.jpg" alt="" name="btn_4" width="107" height="17" border="0" id="btn_4" onmouseover="MM_swapImage('btn_4','','images/btn_4_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#A7A7A7">
<img src="images/lines-11.jpg" width="3" height="17" alt="" /></td>
<td width="97" height="17" colspan="3" align="left" valign="top" bgcolor="#A7A7A7"><a href="contentpage.html"><img src="images/btn_5.jpg" alt="" name="btn_5" width="97" height="17" border="0" id="btn_5" onmouseover="MM_swapImage('btn_5','','images/btn_5_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="3" height="17" align="left" valign="top" bgcolor="#A7A7A7">
<img src="images/lines-13.jpg" width="3" height="17" alt="" /></td>
<td width="93" height="17" colspan="3" align="left" valign="top" bgcolor="#A7A7A7"><a href="contentpage.html"><img src="images/btn_6.jpg" alt="" name="btn_6" width="93" height="17" border="0" id="btn_6" onmouseover="MM_swapImage('btn_6','','images/btn_6_over.jpg',1)" onmouseout="MM_swapImgRestore()"/></a></td>
<td width="17" height="17" align="left" valign="top" nowrap bgcolor="#A7A7A7"></td>
<td width="0" height="17" nowrap></td>
</tr>
<tr>
<td width="656" height="19" colspan="25" align="left" valign="top" nowrap bgcolor="#A7A7A7"></td>
<td width="0" height="19" nowrap></td>
</tr>
<tr>
<td width="656" height="240" colspan="25" align="left" valign="top">
<img src="images/main-15.jpg" width="656" height="240" alt="" /></td>
<td width="0" height="240" nowrap></td>
</tr>
<tr>
<td width="656" height="7" colspan="25" align="left" valign="top" nowrap bgcolor="#EFEFEF"></td>
<td width="0" height="7" nowrap></td>
</tr>
<tr>
<td width="19" height="314" rowspan="9" align="left" valign="top" nowrap bgcolor="#EFEFEF"></td>
<td width="209" height="43" colspan="8" align="left" valign="top" bgcolor="#EFEFEF">
<img src="images/welcome.jpg" width="209" height="43" alt="" /></td>
<td width="174" height="43" colspan="5" align="left" valign="top" nowrap bgcolor="#EFEFEF"></td>
<td width="31" height="314" rowspan="9" align="left" valign="top" nowrap bgcolor="#EFEFEF"></td>
<td width="185" height="43" colspan="8" align="left" valign="top" bgcolor="#EFEFEF">
<img src="images/news.jpg" width="185" height="43" alt="" /></td>
<td width="38" height="314" colspan="2" rowspan="9" align="left" valign="top" nowrap bgcolor="#EFEFEF"></td>
<td width="0" height="43" nowrap></td>
</tr>
<tr>
<td width="121" height="82" colspan="5" rowspan="2" align="left" valign="top" bgcolor="#EFEFEF">
<img src="images/welcome-18.jpg" width="121" height="82" alt="" /></td>
<td width="10" height="94" rowspan="3" align="left" valign="top" nowrap bgcolor="#EFEFEF"></td>
<td width="252" height="94" colspan="7" rowspan="3" align="left" valign="top" bgcolor="#EFEFEF"><span class="text1">Lorem ipsum dolor sit amet, consectetuer</span><br />
Nam eu nulla. Donec lobortis purus vel urna. Nunc laoreet lacinia nunc. In volutpat sodales ipsum. Sed vestibulum. <a href="#" class="a">Integer in ante. Sed posuere ligula</a> rhoncus erat. Fusce urna dui, sollicitudin ac, pulvinar quis</td>
<td width="21" height="56" colspan="4" align="left" valign="top" bgcolor="#EFEFEF">
<img src="images/news-19.jpg" width="21" height="56" alt="" /></td>
<td width="164" height="56" colspan="4" align="left" valign="top" bgcolor="#EFEFEF" style="padding-top:5px"><p class="text1">September 29
</p>
<p><a href="#" class="a">Integer in ante. Sed posuere ligula </a>rhoncus erat. Fusce urna dui </p></td>
<td width="0" height="56" nowrap></td>
</tr>
<tr>
<td width="21" height="55" colspan="4" rowspan="3" align="left" valign="top" bgcolor="#EFEFEF"><img src="images/news-20.jpg" width="21" height="55" alt="" /></td>
<td width="164" height="55" colspan="4" rowspan="3" align="left" valign="top" bgcolor="#EFEFEF" style="padding-top:5px"><span class="text1">September 28
</span><br />
<a href="#" class="a">Integer in ante. Sed posuere ligula</a> rhoncus erat. Fusce urna dui</td>
<td width="0" height="26" nowrap></td>
</tr>
<tr>
<td width="121" height="12" colspan="5" align="left" valign="top" nowrap bgcolor="#EFEFEF"></td>
<td width="0" height="12" nowrap></td>
</tr>
<tr>
<td width="162" height="40" colspan="7" rowspan="2" align="left" valign="top" bgcolor="#EFEFEF">
<img src="images/services.jpg" width="162" height="40" alt="" /></td>
<td width="221" height="40" colspan="6" rowspan="2" align="left" valign="top" nowrap bgcolor="#EFEFEF"></td>
<td width="0" height="17" nowrap></td>
</tr>
<tr>
<td width="185" height="45" colspan="8" rowspan="2" align="left" valign="top" bgcolor="#EFEFEF">
<img src="images/spotlight.jpg" width="185" height="45" alt="" /></td>
<td width="0" height="23" nowrap></td>
</tr>
<tr>
<td width="121" height="80" colspan="5" rowspan="2" align="left" valign="top" bgcolor="#EFEFEF">
<img src="images/services-23.jpg" width="121" height="80" alt="" /></td>
<td width="10" height="80" rowspan="2" align="left" valign="top" nowrap bgcolor="#EFEFEF"></td>
<td width="252" height="80" colspan="7" rowspan="2" align="left" valign="top" bgcolor="#EFEFEF"><span class="text1">Lorem ipsum dolor sit amet, consectetuer</span><br />
<a href="#" class="a">Nam eu nulla. Donec lobortis purus vel urna. Nunc </a>laoreet lacinia nunc. In volutpat sodales ipsum. Sed vestibulum. rhoncus erat. Fusce urna dui, sollicitudin ac, pulvinar quis</td>
<td width="0" height="22" nowrap></td>
</tr>
<tr>
<td width="16" height="115" colspan="3" rowspan="2" align="left" valign="top" bgcolor="#EFEFEF">
<img src="images/spotlight-24.jpg" width="16" height="115" alt="" /></td>
<td width="169" height="115" colspan="5" rowspan="2" align="left" valign="top" bgcolor="#EFEFEF" style="line-height:18px; padding-top:3px"><a href="#" class="b">Morbi volutpat leo in ligula. Inter vel</a><br />
<a href="#" class="b">magna. sagittis. Fusce elit ligula, </a><br />
<a href="#" class="b">sodales sit amet, tincid unt in, Fusce </a><br />
<a href="#" class="b">interdum. Sed laoreet. Aenean. Sed </a><br />
l<a href="#" class="b">aoreet. magna. sagittis. Fusce elit</a></td>
<td width="0" height="58" nowrap></td>
</tr>
<tr>
<td width="27" height="57" colspan="2" align="left" valign="top" bgcolor="#EFEFEF">
<img src="images/services-25.jpg" width="27" height="57" alt="" /></td>
<td width="356" height="57" colspan="11" align="left" valign="top" bgcolor="#EFEFEF" style="line-height:18px; padding-top:8px"><a href="#" class="b">Morbi volutpat leo in ligula. Inter vel magna. sagittis. Fusce elit ligula, sodales </a><br />
<a href="#" class="b">sit amet, tincid unt in, Fusce interdum. Sed laoreet. Aenean. Sed laoreet. </a></td>
<td width="0" height="57" nowrap></td>
</tr>
<tr>
<td width="775" height="49" colspan="27" align="center" valign="middle" class="text2" style="background:url(images/b_footer.jpg)"><a href="index.html">HOME</a> | <a href="contentpage.html">ABOUT US</a> | <a href="contentpage.html">SERVICES</a> | <a href="contentpage.html">SOLUTIONS</a> | <a href="contentpage.html">SUPPORT</a> | <a href="contentpage.html">CONTACTS</a><br />
<span class="text3">Copyright © Your Company Name</span><br />
Design by <a href="http://www.templatesbox.com" target="_blank" class="adv">Templates</a> Box. Create a <a href="http://www.wix.com" target="_blank" class="adv">free website</a>.
</td>
<td width="0" height="49" nowrap></td>
</tr>
</table>
<!-- End Save for Web Slices -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 KiB

View File

@@ -0,0 +1,86 @@
<!-- saved from url=(0022)http://internet.e-mail -->
<html>
<head>
<title>TemplatesBox.com | Terms of Use</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#5E717F" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="700" cellspacing="0" cellpadding="8" align="center" bgcolor="#BED5E2" style="border-collapse:collapse;">
<tr>
<td bgcolor="#567280" style="border-top-width:1px; border-right-width:1px; border-left-width:1px; border-top-color:rgb(216,216,216); border-right-color:rgb(216,216,216); border-left-color:rgb(216,216,216); border-top-style:solid; border-right-style:solid; border-left-style:solid;"><font color="#C2DCEB" size="2" face="Verdana,Arial"><b>Templates</b></font><font color="#FF9900" size="2" face="Verdana,Arial"><b>Box</b></font><font color="#FF9B05" size="2" face="Verdana,Arial"><b>
</b></font><font color="#E3E3E3" size="2" face="Verdana,Arial">|<b> Terms of Use</b></font></td>
</tr>
<tr>
<td bgcolor="#A1BBCA" style="border-right-width:1px; border-left-width:1px; border-right-color:rgb(216,216,216); border-left-color:rgb(216,216,216); border-right-style:solid; border-left-style:solid;">
<table align="center" cellpadding="0" cellspacing="0" width="98%">
<tr>
<td>
<p style="line-height:115%; margin-top:0; margin-bottom:0;"><font face="Verdana,Arial" color="#354D59"><span style="font-size:8pt;">By
downloading a template from TemplatesBox.com you agree to the following
Terms of Use: </span></font>
<p style="line-height:115%; margin-top:0; margin-bottom:0;"><font face="Verdana,Arial" color="#354D59"><span style="font-size:8pt;">Our
web templates may be used for your own and/or your clients' websites,
but you may not sell/offer for free our templates in any sort of collection,
such as distributing to a third party via CD, diskette, or letting others
to download off your websites etc.<br>
<br>
Link back to www.templatesbox.com is required and always appreciated.
Also, please visit the<br>
</span></font><a href="http://www.templatesbox.com/linkus.htm" target="_blank"><font face="Verdana,Arial" color="#354D59"><b><span style="font-size:8pt;">Link
Us</span></b></font></a><font face="Verdana,Arial" color="#354D59"><span style="font-size:8pt;"> section.<br>
<br>
The templates are offered &quot;as is&quot; without warranty of any kind,
either expressed or implied. TemplatesBox.com will not be liable for any
damage or loss of data whatsoever due to downloading or using a template.
In no event shall TemplatesBox.com be liable for any damages including,
but not limited to, direct, indirect, special, incidental or consequential
damages or other losses arising out of the use of or inability to use
the templates and/or information from TemplatesBox.com.<br>
<br>
TemplatesBox.com team reserves the right to change or modify these terms
with no prior notice.</span></font></p>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="#567280" style="border-right-width:1px; border-left-width:1px; border-right-color:rgb(216,216,216); border-left-color:rgb(216,216,216); border-right-style:solid; border-left-style:solid;"><font size="2" face="Verdana,Arial" color="#E3E3E3"><b>Featured
Partners</b></font></td>
</tr>
<tr>
<td bgcolor="#A1BBCA" style="border-right-width:1px; border-bottom-width:1px; border-left-width:1px; border-right-color:rgb(216,216,216); border-bottom-color:rgb(216,216,216); border-left-color:rgb(216,216,216); border-right-style:solid; border-bottom-style:solid; border-left-style:solid;" height="235">
<table align="center" cellpadding="0" cellspacing="0" width="98%">
<tr>
<td>
<p><a href="http://www.specialtemplates.com" target="_blank"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#2D444F">Premium Website
Templates</font></b></a><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#2D444F"><br>
Over 9000 High-end Website templates, Flash intros and Logo templates.<b><a href="http://www.freshtemplates.com" target="_blank"><br>
<br>
</a></b></font><a href="http://www.freephotosbank.com" target="_blank"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#2D444F">Free
Photos, Free Stock Photography</font></b></a><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#2D444F"><b><br></b>
</font><FONT face=Verdana color=#2d444f size=2><FONT size=2><FONT
face=Verdana><FONT color=#2d444f>1000's of FREE high quality stock
Photos!</FONT></FONT></FONT></FONT><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#2D444F"><br>
<br>
</font><A
href="http://www.webmasterschannel.com" target=_blank><FONT face=Verdana><FONT color=#2d444f><B><FONT size=2>Webmaster&nbsp;Resources &amp;
Directory</FONT></B></FONT></FONT></A><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#2D444F"><br>
</font><FONT size=2><FONT face=Verdana><FONT color=#2d444f>A large web directory with webmaster
resources.</FONT></FONT></FONT><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#2D444F"><br>
<br>
</font><A href="http://www.photovations.com"
target=_blank><FONT face=Verdana color=#000000
size=2><FONT face=Verdana color=#2d444f size=2><STRONG>Photovations.com</STRONG></FONT></FONT></A><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#2D444F"><br>
</font><FONT face=Verdana color=#2d444f size=2><FONT size=2><FONT
face=Verdana><FONT color=#2d444f>Online Photo Sharing. Free Image
Hosting</FONT></FONT></FONT></FONT></p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -0,0 +1,9 @@
<html>
<body>
<h2>Norwegian Mountain Trip</h2>
<img border="0" src="images/pulpit.jpg" alt="Pulpit rock" width="304" height="228" />
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@@ -0,0 +1,10 @@
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>

View File

@@ -0,0 +1,99 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8 />
<meta name="viewport" content="width=620" />
<title>HTML5 Demo: data-*</title>
<link rel="stylesheet" href="/css/html5demos.css" type="text/css" />
<script src="/js/h5utils.js"></script></head>
<body>
<section id="wrapper">
<header>
<h1>data-*</h1>
</header><style>
#test {
padding: 10px;
border: 1px solid #ccc;
margin: 20px 0;
}
pre {
overflow-x: auto;
padding: 10px;
border: 1px dashed #ccc;
background: #fff;
font-size: 12px;
}
</style>
<article>
<section>
<p>The <code>data-[name]</code> attribute on elements can now be accessed directly via the DOM using <code>element.dataset.[attr]</code>.</p>
<p>Try openning the Web Console and editing <code>element.dataset</code> directly: <br /><code>element.dataset.foo = 'bar';</code></p>
</section>
<p id="status">Not connected</p>
<section>
<div id="test" data-name="rem" data-height="short">This element has data</div>
<input type="button" value="Show data" id="show" />
<input type="button" value="Change data via dataset" id="change1" />
<input type="button" value="change data via setAttribute" id="change2" />
</section>
<pre><code id="element">[click buttons above to show element html]</code></pre>
</article>
<script>
(function () {
function show() {
code.innerHTML = test.outerHTML.replace(/[<>]/g, function (m) {
return { '<': '<', '>': '>' }[m];
});
for (var prop in test.dataset) {
code.innerHTML += '\nel.dataset.' + prop + ' = "' + test.dataset[prop] + '"';
}
}
var state = document.getElementById('status'),
code = document.getElementById('element');
var test = window.element = document.getElementById('test');
if (test.dataset === undefined) {
state.innerHTML = 'dataset not supported';
state.className = 'fail';
} else {
state.className = 'success';
state.innerHTML = 'element.dataset supported';
}
addEvent(document.getElementById('show'), 'click', function () {
show();
});
addEvent(document.getElementById('change1'), 'click', function () {
test.dataset.name = 'via el.dataset';
show();
});
addEvent(document.getElementById('change2'), 'click', function () {
test.setAttribute('data-name', 'via setAttribute');
show();
});
})();
</script>
<footer><a href="/">HTML5 demos</a>/<a id="built" href="http://twitter.com/rem">@rem built this</a>/<a href="#view-source">view source</a></footer>
</section>
<a href="http://github.com/remy/html5demos"><img style="position: absolute; top: 0; left: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_left_darkblue_121621.png" alt="Fork me on GitHub" /></a>
<script src="/js/prettify.packed.js"></script>
<script>
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script>
try {
var pageTracker = _gat._getTracker("UA-1656750-18");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>

View File

@@ -0,0 +1,19 @@
<html>
<head>
<title>POST example</title>
</head>
<body>
<h1> POST example </h1>
<form action="index.html" method="POST">
<input type="text" name="name" value="a simple name"/> <br/>
<input type="text" name="text" value="a tiny text"/>
<input type="submit" value="POST"/>
</form>
<form action="index.html" method="GET">
<input type="text" name="name" value="a simple name"/> <br/>
<input type="text" name="text" value="a tiny text"/>
<input type="submit" value="GET"/>
</form>
</body>
</html>

View File

@@ -0,0 +1,5 @@
Eiffel Web Nino is and HTTPD server. It's a work in progress, so maybe it will be refactored.
The goal of is to provide a simple web server for development (like Java, Python and Ruby provide)

View File

@@ -0,0 +1,85 @@
note
description: "Summary description for {HTTP_SERVER_CONFIGURATION}."
date: "$Date$"
revision: "$Revision$"
class
HTTP_SERVER_CONFIGURATION
create
make
feature {NONE} -- Initialization
make
do
http_server_port := 80
max_tcp_clients := 100
socket_accept_timeout := 1_000
socket_connect_timeout := 5_000
document_root := "htdocs"
force_single_threaded := False
end
feature -- Access
Server_details : STRING = "Server : NINO Eiffel Server"
document_root: STRING assign set_document_root
http_server_name: detachable STRING assign set_http_server_name
http_server_port: INTEGER assign set_http_server_port
max_tcp_clients: INTEGER assign set_max_tcp_clients
socket_accept_timeout: INTEGER assign set_socket_accept_timeout
socket_connect_timeout: INTEGER assign set_socket_connect_timeout
force_single_threaded: BOOLEAN assign set_force_single_threaded
is_verbose: BOOLEAN assign set_is_verbose
-- Display verbose message to the output?
feature -- Element change
set_http_server_name (v: like http_server_name)
do
http_server_name := v
end
set_http_server_port (v: like http_server_port)
do
http_server_port := v
end
set_document_root (v: like document_root)
do
document_root := v
end
set_max_tcp_clients (v: like max_tcp_clients)
do
max_tcp_clients := v
end
set_socket_accept_timeout (v: like socket_accept_timeout)
do
socket_accept_timeout := v
end
set_socket_connect_timeout (v: like socket_connect_timeout)
do
socket_connect_timeout := v
end
set_force_single_threaded (v: like force_single_threaded)
do
force_single_threaded := v
end
set_is_verbose (b: BOOLEAN)
-- Set `is_verbose' to `b'
do
is_verbose := b
end
note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,199 @@
note
description: "Summary description for {HTTP_CONNECTION_HANDLER}."
author: ""
date: "$Date$"
revision: "$Revision$"
deferred class
HTTP_CONNECTION_HANDLER
inherit
HTTP_HANDLER
redefine
make
end
feature {NONE} -- Initialization
make (a_server: like server)
-- Creates a {HTTP_CONNECTION_HANDLER}, assigns the main_server and sets the current_request_message to empty.
--
-- `a_server': The main server object
do
Precursor (a_server)
reset
end
reset
do
has_error := False
create method.make_empty
create uri.make_empty
create request_header.make_empty
create request_header_map.make (10)
remote_info := Void
end
feature -- Execution
receive_message_and_send_reply (client_socket: TCP_STREAM_SOCKET)
local
l_remote_info: detachable like remote_info
do
create l_remote_info
if attached client_socket.peer_address as l_addr then
l_remote_info.addr := l_addr.host_address.host_address
l_remote_info.hostname := l_addr.host_address.host_name
l_remote_info.port := l_addr.port
remote_info := l_remote_info
end
analyze_request_message (client_socket)
if has_error then
check catch_bad_incoming_connection: False end
if is_verbose then
log ("ERROR: invalid HTTP incoming request")
end
else
process_request (Current, client_socket)
end
reset
end
feature -- Request processing
process_request (a_handler: HTTP_CONNECTION_HANDLER; a_socket: TCP_STREAM_SOCKET)
-- Process request ...
require
no_error: not has_error
a_handler_attached: a_handler /= Void
a_uri_attached: a_handler.uri /= Void
a_method_attached: a_handler.method /= Void
a_header_map_attached: a_handler.request_header_map /= Void
a_header_text_attached: a_handler.request_header /= Void
a_socket_attached: a_socket /= Void
deferred
end
feature -- Access
request_header: STRING
-- Header' source
request_header_map : HASH_TABLE [STRING,STRING]
-- Contains key:value of the header
has_error: BOOLEAN
-- Error occurred during `analyze_request_message'
method: STRING
-- http verb
uri: STRING
-- http endpoint
version: detachable STRING
-- http_version
--| unused for now
remote_info: detachable TUPLE [addr: STRING; hostname: STRING; port: INTEGER]
-- Information related to remote client
feature -- Parsing
analyze_request_message (a_socket: TCP_STREAM_SOCKET)
-- Analyze message extracted from `a_socket' as HTTP request
require
input_readable: a_socket /= Void and then a_socket.is_open_read
local
end_of_stream : BOOLEAN
pos,n : INTEGER
line : detachable STRING
k, val: STRING
txt: STRING
l_is_verbose: BOOLEAN
do
create txt.make (64)
request_header := txt
if attached next_line (a_socket) as l_request_line and then not l_request_line.is_empty then
txt.append (l_request_line)
txt.append_character ('%N')
analyze_request_line (l_request_line)
else
has_error := True
end
l_is_verbose := is_verbose
if not has_error or l_is_verbose then
-- if `is_verbose' we can try to print the request, even if it is a bad HTTP request
from
line := next_line (a_socket)
until
line = Void or end_of_stream
loop
n := line.count
if l_is_verbose then
log (line)
end
pos := line.index_of (':',1)
if pos > 0 then
k := line.substring (1, pos-1)
if line [pos+1].is_space then
pos := pos + 1
end
if line [n] = '%R' then
n := n - 1
end
val := line.substring (pos + 1, n)
request_header_map.put (val, k)
end
txt.append (line)
txt.append_character ('%N')
if line.is_empty or else line [1] = '%R' then
end_of_stream := True
else
line := next_line (a_socket)
end
end
end
end
analyze_request_line (line: STRING)
-- Analyze `line' as a HTTP request line
require
valid_line: line /= Void and then not line.is_empty
local
pos, next_pos: INTEGER
do
if is_verbose then
log ("%N## Parse HTTP request line ##")
log (line)
end
pos := line.index_of (' ', 1)
method := line.substring (1, pos - 1)
next_pos := line.index_of (' ', pos + 1)
uri := line.substring (pos + 1, next_pos - 1)
version := line.substring (next_pos + 1, line.count)
has_error := method.is_empty
end
next_line (a_socket: TCP_STREAM_SOCKET): detachable STRING
-- Next line fetched from `a_socket' is available.
require
is_readable: a_socket.is_open_read
do
if a_socket.socket_ok then
a_socket.read_line_thread_aware
Result := a_socket.last_string
end
end
invariant
request_header_attached: request_header /= Void
note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,149 @@
note
description: "Summary description for {HTTP_CONSTANTS}."
author: ""
date: "$Date$"
revision: "$Revision$"
class
HTTP_CONSTANTS
feature
http_version_1_1: STRING = "HTTP/1.1"
http_version_1_0: STRING = "HTTP/1.0"
crlf: STRING = "%/13/%/10/"
feature -- Status codes
-- 1xx Informational -Request received, continuing process
Continue : STRING = "100"
Switching_Protocols : STRING = "101"
-- 2xx Success - The action was successfully received, understood, and accepted
Ok: STRING = "200"
Created : STRING = "201"
Accepted : STRING = "202"
Non_Authoritative_Information : STRING = "203"
No_Content : STRING = "204"
Reset_Content : STRING = "205"
Parcial_Content : STRING = "206"
-- 3xx Redirection - Further Action must be taken in order to complete the request
Multiple_Choices : STRING = "300"
Moved_Permanently: STRING = "301"
Found : STRING = "302"
See_Other : STRING = "303"
Not_Modified : STRING = "304"
Use_Proxy : STRING = "305"
Temporary_Redirect : STRING = "307"
--4xx Client Error - The request contains bad syntax or cannot be fulfilled
Bad_Request : STRING = "400"
Unauthorized : STRING = "401"
Payment_Required : STRING = "402"
Forbidden : STRING = "403"
Not_Found : STRING = "404"
Method_Not_Allowed : STRING = "405"
Not_Acceptable : STRING = "406"
Proxy_Authentication_Required : STRING = "407"
Request_Time_out : STRING = "408"
Conflict : STRING = "409"
Gone : STRING = "410"
Length_Required : STRING = "411"
Precondition_Failed : STRING = "412"
Request_Entity_Too_Large : STRING = "413"
Request_URI_Too_Large : STRING = "414"
Unsupported_Media_Type : STRING = "415"
Requested_range_not_satisfiable : STRING = "416"
Expectation_Failed : STRING = "417"
--5xx Server Error - The server failed to fulfill an apparently valid request
server_error: STRING = "500"
Internal_Server_Error : STRING = "500"
Not_Implemented : STRING = "501"
Bad_Gateway : STRING = "502"
Service_Unavailable : STRING = "503"
Gateway_Time_out : STRING = "504"
HTTP_Version_not_supported : STRING = "505"
-- messages
ok_message: STRING = "OK"
continue_message : STRING = "Continue"
not_found_message: STRING = "URI not found"
not_implemented_message: STRING = "Not Implemented"
feature -- content types
text_html: STRING = "text/html"
feature -- General Header Fields
-- There are a few header fields which have general applicability for both request and response messages,
-- but which do not apply to the entity being transferred.
-- These header fields apply only to the message being transmitted.
Cache_control : STRING = "Cache-Control"
Connection : STRING = "Connection"
Date : STRING = "Date"
Pragma : STRING = "PRAGMA"
Trailer : STRING = "Trailer"
Transfer_encoding : STRING = "Transfer-Encoding"
Upgrade : STRING = "Upgrade"
Via : STRING = "Via"
Warning : STRING = "Warning"
feature -- Request Header
Accept : STRING = "Accept"
Accept_charset : STRING = "Accept-Charset"
Accept_encoding : STRING = "Accept-Encoding"
Accept_language : STRING = "Accept-Language"
Authorization : STRING = "Authorization"
Expect : STRING = "Expect"
From_header : STRING = "From"
Host : STRING = "Host"
If_match : STRING = "If-Match"
If_modified_since : STRING = "If-Modified-Since"
If_none_match : STRING = "If-None-Match"
If_range : STRING = "If-Range"
If_unmodified_since : STRING = "If-Unmodified-Since"
Max_forwards : STRING = "Max-Forwards"
Proxy_authorization : STRING = "Proxy-Authorization"
Range : STRING = "Range"
Referer : STRING = "Referrer"
TE : STRING = "TE"
User_agent : STRING = "User-Agent"
feature -- Entity Header
Allow : STRING = "Allow"
Content_encoding : STRING = "Content-Encoding"
Content_language : STRING = "Content-Language"
Content_length : STRING = "Content-Length"
Content_location : STRING = "Content-Location"
Content_MD5 : STRING = "Content-MD5"
Content_range : STRING = "Content-Range"
Content_type : STRING = "Content-Type"
Expires : STRING = "Expires"
Last_modified : STRING = "Last-Modified"
feature -- Http Method
Options : STRING = "OPTIONS"
Get : STRING = "GET"
Head : STRING = "HEAD"
Post : STRING = "POST"
Put : STRING = "PUT"
Delete : STRING = "DELETE"
Trace : STRING = "TRACE"
Connect : STRING = "CONNECT"
note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,60 @@
note
description: "[
Provides features to encode and decode messages
]"
legal: "See notice at end of class."
status: "Community Preview 1.0"
date: "$Date: 2009-09-01 19:15:37 -0300 (mar 01 de sep de 2009) $"
revision: "$Revision: 80577 $"
class
HTTP_ENCODING_FACILITIES
create
make
feature -- Initialization
make
do
end
feature -- Conversion
encode_natural(a_i: NATURAL; a_is_fragmented: BOOLEAN): NATURAL
-- Leftshift of the natural (don't use numbers >= 2^31) and subsequent append of the flag bit.
-- Use decode_natural and decode_flag for decoding.
require
no_too_big: a_i < 2147483648
do
Result := (a_i |<< 1) + a_is_fragmented.to_integer.as_natural_32
end
change_flag(a_i: NATURAL; a_new_flag: BOOLEAN): NATURAL
-- Changes the flag to "new_flag" and doesn't change the encoded natural.
do
Result := (a_i & 0xFFFFFFFE) + a_new_flag.to_integer.as_natural_32
end
decode_natural_and_flag (a_i: NATURAL): TUPLE [NATURAL, BOOLEAN]
-- Convenience feature which combines both decodings (natural and flag)
do
Result := [decode_natural (a_i), decode_flag (a_i)]
end
decode_natural (a_i: NATURAL): NATURAL
-- The natural that was encoded in {ENCODING_FACILITIES}.encode_natural.
do
Result := (a_i |>> 1)
end
decode_flag (a_i: NATURAL): BOOLEAN
--`Result': the flag that was encoded in encode_natural
do
Result := (a_i.bit_and (1) = 1)
end
note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,234 @@
note
description: "Summary description for {HTTP_CONNECTION_HANDLER}."
date: "$Date$"
revision: "$Revision$"
deferred class
HTTP_HANDLER
inherit
ANY
HTTP_CONSTANTS
feature {NONE} -- Initialization
make (a_server: like server)
-- Creates a {HTTP_HANDLER}, assigns the server and initialize various values
--
-- `a_server': The main server object
require
a_server_attached: a_server /= Void
do
server := a_server
is_stop_requested := False
ensure
server_set: a_server ~ server
end
feature -- Output
log (a_message: READABLE_STRING_8)
-- Log `a_message'
do
io.put_string (a_message)
io.put_new_line
end
feature -- Inherited Features
execute
-- <Precursor>
-- Creates a socket and connects to the http server.
local
l_listening_socket: detachable TCP_STREAM_SOCKET
l_http_port: INTEGER
do
launched := False
port := 0
is_stop_requested := False
l_http_port := http_server_port
if
attached http_server_name as l_servername and then
attached (create {INET_ADDRESS_FACTORY}).create_from_name (l_servername) as l_addr
then
create l_listening_socket.make_server_by_address_and_port (l_addr, l_http_port)
else
create l_listening_socket.make_server_by_port (l_http_port)
end
if not l_listening_socket.is_bound then
if is_verbose then
log ("Socket could not be bound on port " + l_http_port.out)
end
else
l_http_port := l_listening_socket.port
from
l_listening_socket.listen (max_tcp_clients)
if is_verbose then
log ("%NHTTP Connection Server ready on port " + l_http_port.out +" : http://localhost:" + l_http_port.out + "/")
end
on_launched (l_http_port)
until
is_stop_requested
loop
l_listening_socket.accept
if not is_stop_requested then
if attached l_listening_socket.accepted as l_thread_http_socket then
process_connection (l_thread_http_socket)
end
end
is_stop_requested := stop_requested_on_server
end
l_listening_socket.cleanup
check
socket_is_closed: l_listening_socket.is_closed
end
end
if launched then
on_stopped
end
if is_verbose then
log ("HTTP Connection Server ends.")
end
rescue
log ("HTTP Connection Server shutdown due to exception. Please relaunch manually.")
if l_listening_socket /= Void then
l_listening_socket.cleanup
check
socket_is_closed: l_listening_socket.is_closed
end
end
if launched then
on_stopped
end
is_stop_requested := True
retry
end
process_connection (a_socket: TCP_STREAM_SOCKET)
-- Process incoming connection
do
if is_verbose then
log ("Incoming connection...(socket:" + a_socket.descriptor.out + ")")
end
--| FIXME jfiat [2011/11/03] : should use a Pool of Threads/Handler to process this connection
--| also handle permanent connection...?
receive_message_and_send_reply (a_socket)
a_socket.cleanup
if is_verbose then
log ("connection completed...")
end
ensure
socket_closed: a_socket.is_closed
end
feature -- Event
on_launched (a_port: INTEGER)
-- Server launched using port `a_port'
require
not_launched: not launched
do
launched := True
port := a_port
ensure
launched: launched
end
on_stopped
-- Server stopped
require
launched: launched
do
launched := False
ensure
stopped: not launched
end
feature -- Access
is_stop_requested: BOOLEAN
-- Set true to stop accept loop
launched: BOOLEAN
-- Server launched and listening on `port'
port: INTEGER
-- Listening port.
--| 0: not launched
feature -- Access: configuration
is_verbose: BOOLEAN
-- Is verbose for output messages.
do
Result := server_configuration.is_verbose
end
force_single_threaded: BOOLEAN
do
Result := server_configuration.force_single_threaded
end
http_server_name: detachable STRING
do
Result := server_configuration.http_server_name
end
http_server_port: INTEGER
do
Result := server_configuration.http_server_port
end
max_tcp_clients: INTEGER
do
Result := server_configuration.max_tcp_clients
end
feature {NONE} -- Access: server
server: HTTP_SERVER
-- The main server object
stop_requested_on_server: BOOLEAN
-- Stop requested on `server' object
do
Result := server.stop_requested
end
feature {NONE} -- Access: configuration
server_configuration: HTTP_SERVER_CONFIGURATION
-- The main server's configuration
do
Result := server.configuration
end
feature -- Status setting
shutdown
-- Stops the thread
do
is_stop_requested := True
end
feature -- Execution
receive_message_and_send_reply (client_socket: TCP_STREAM_SOCKET)
require
socket_attached: client_socket /= Void
-- socket_valid: client_socket.is_open_read and then client_socket.is_open_write
a_http_socket: not client_socket.is_closed
deferred
end
invariant
server_attached: server /= Void
note
copyright: "2011-2012, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,56 @@
note
description: "Summary description for {HTTP_SERVER}."
author: ""
date: "$Date$"
revision: "$Revision$"
class
HTTP_SERVER
create
make
feature -- Initialization
make (cfg: like configuration)
do
configuration := cfg
end
setup (a_http_handler: HTTP_HANDLER)
require
a_http_handler_valid: a_http_handler /= Void
do
if configuration.is_verbose then
log ("%N%N%N")
log ("Starting Web Application Server (port="+ configuration.http_server_port.out +"):%N")
end
stop_requested := False
a_http_handler.execute
end
shutdown_server
do
stop_requested := True
end
feature -- Access
configuration: HTTP_SERVER_CONFIGURATION
-- Configuration of the server
stop_requested: BOOLEAN
-- Stops the server
feature -- Output
log (a_message: READABLE_STRING_8)
-- Log `a_message'
do
io.put_string (a_message)
end
;note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,118 @@
deferred class HTTP_REQUEST_HANDLER
inherit
ANY
redefine
default_create
end
feature {NONE} -- Initialization
default_create
do
Precursor
create request_uri.make_empty
create script_name.make_empty
create query_string.make_empty
create answer
create headers.make (0)
end
feature -- Access
request_uri: STRING
-- requested url
script_name: STRING
-- Script name
query_string: STRING
-- Query string
data: detachable STRING
-- the entire request message
headers : HASH_TABLE [STRING, STRING]
-- Provides access to the request's HTTP headers, for example:
-- headers["Content-Type"] is "text/plain"
answer: HTTP_RESPONSE
-- reply to this request
feature -- Execution
process
-- process the request and create an answer
require
valid_uri: request_uri /= Void
deferred
end
feature -- Recycle
reset
-- reinit the fields
do
request_uri.wipe_out
script_name.wipe_out
query_string.wipe_out
data := Void
answer.reset
end
feature -- Element change
set_uri (new_uri: STRING)
-- set new URI
require
valid_uri: new_uri /= Void
local
p: INTEGER
do
request_uri := new_uri
p := new_uri.index_of ('?', 1)
if p > 0 then
script_name := new_uri.substring (1, p - 1)
query_string := new_uri.substring (p + 1, new_uri.count)
else
script_name := new_uri.string
query_string := ""
end
end
set_data (new_data: STRING)
-- set new data
do
data := new_data
end
set_headers ( a_header : HASH_TABLE [STRING, STRING] )
do
headers := a_header
end
feature {NONE} -- Implementation
real_filename (fn: STRING): STRING
-- Real filename from url-path `fn'
--| Find a better design for this piece of code
--| Eventually in a spec/$ISE_PLATFORM/ specific cluster
do
if {PLATFORM}.is_windows then
create Result.make_from_string (fn)
Result.replace_substring_all ("/", "\")
if Result[Result.count] = '\' then
Result.remove_tail (1)
end
else
Result := fn
if Result[Result.count] = '/' then
Result := Result.substring (1, Result.count - 1)
end
end
end
note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,147 @@
class HTTP_RESPONSE
inherit
HTTP_CONSTANTS
redefine
default_create
end
create
default_create
feature -- creation
default_create
do
Precursor
set_defaults
end
set_defaults
-- Set default values for the reply
do
status_code := ok
create content_length_data.make_empty
reason_phrase := ok_message
content_type_data := text_html
set_reply_text (Void)
end
feature -- Recycle
reset
do
set_defaults
end
feature -- response header fields
status_code: STRING
-- status
content_length_data : STRING
-- length
reason_phrase: STRING
-- message, if any
content_type_data: STRING
-- type of content in this reply (eg. text/html)
feature -- Element change
set_content_length (new_content_length: INTEGER)
require
positive_or_zero: new_content_length >= 0
do
content_length_data := new_content_length.out
end
set_status_code (new_status_code: STRING)
require
not_void: new_status_code /= Void
do
status_code := new_status_code
end
set_reason_phrase (new_reason_phrase: STRING)
require
not_void: new_reason_phrase /= Void
do
reason_phrase := new_reason_phrase
end
set_content_type (new_content_type: STRING)
require
not_void: new_content_type /= Void
do
content_type_data := new_content_type
end
feature -- Access: send reply
reply_header: STRING
-- header
do
Result := http_version_1_1.twin
Result.extend (' ')
Result.append (status_code)
Result.extend (' ')
Result.append (reason_phrase)
Result.append (crlf)
Result.append ({HTTP_SERVER_CONFIGURATION}.Server_details)
Result.append (crlf)
Result.append (Content_type + ": ")
Result.append (content_type_data)
Result.append (crlf)
Result.append (Content_length + ": ")
Result.append (content_length_data)
Result.append (crlf)
Result.append (crlf)
-- TODO: could add the size of data being sent here and
-- then keep the connection alive
end
reply_header_continue: STRING
-- header
do
Result := http_version_1_1.twin
Result.extend (' ')
Result.append (status_code)
Result.extend (' ')
Result.append (continue_message)
Result.append (crlf)
Result.append (crlf)
-- TODO: could add the size of data being sent here and
-- then keep the connection alive
end
reply_text: STRING
-- reply text
feature -- Change element: send reply
set_reply_text (new_text: detachable STRING)
-- text could be Void
do
if new_text = Void then
create reply_text.make_empty
else
reply_text := new_text
end
end
append_reply_text (more_text: STRING)
-- add more text to the reply
require
reply_text /= Void
more_text /= Void
do
reply_text.append (more_text)
end
note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,18 @@
note
description: "Summary description for {SHARED_URI_CONTENTS_TYPES}."
author: ""
date: "$Date$"
revision: "$Revision$"
class
SHARED_URI_CONTENTS_TYPES
feature
ct_table: URI_CONTENTS_TYPES
once
create Result.make
end
note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,83 @@
note
description: "Summary description for {TCP_STREAM_SOCKET}."
date: "$Date: 2015-02-16 19:53:13 +0100 (lun., 16 févr. 2015) $"
revision: "$Revision: 96642 $"
class
TCP_STREAM_SOCKET
inherit
NETWORK_STREAM_SOCKET
redefine
make
end
create
make_server_by_address_and_port,
make_server_by_port
create {NETWORK_STREAM_SOCKET}
make_from_descriptor_and_address,
make_empty
feature {NONE} -- Initialization
make_server_by_address_and_port (a_address: INET_ADDRESS; a_port: INTEGER)
-- Create server socket on `a_address' and `a_port'.
require
valid_port: a_port >= 0
do
make
create address.make_from_address_and_port (a_address, a_port)
bind
end
make
-- Create a network stream socket.
do
Precursor
set_reuse_address
end
feature -- Basic operation
send_message (a_msg: STRING)
local
a_package : PACKET
a_data : MANAGED_POINTER
c_string : C_STRING
do
create c_string.make (a_msg)
create a_data.make_from_pointer (c_string.item, a_msg.count + 1)
create a_package.make_from_managed_pointer (a_data)
send (a_package, 1)
end
feature -- Output
put_readable_string_8 (s: READABLE_STRING_8)
-- Write readable string `s' to socket.
local
ext: C_STRING
do
create ext.make (s)
put_managed_pointer (ext.managed_data, 0, s.count)
end
feature -- Status report
try_ready_for_reading: BOOLEAN
-- Is data available for reading from the socket right now?
require
socket_exists: exists
local
retval: INTEGER
do
retval := c_select_poll_with_timeout (descriptor, True, 0)
Result := (retval > 0)
end
note
copyright: "2011-2015, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,73 @@
note
description: "Summary description for {TCP_STREAM_SOCKET}."
date: "$Date$"
revision: "$Revision$"
class
TCP_STREAM_SOCKET
inherit
NETWORK_STREAM_SOCKET
redefine
make
end
create
make_server_by_address_and_port,
make_server_by_port
create {NETWORK_STREAM_SOCKET}
make_from_descriptor_and_address,
make_empty
feature {NONE} -- Initialization
make
-- Create a network stream socket.
do
Precursor
set_reuse_address
end
feature -- Basic operation
send_message (a_msg: STRING)
local
a_package : PACKET
a_data : MANAGED_POINTER
c_string : C_STRING
do
create c_string.make (a_msg)
create a_data.make_from_pointer (c_string.item, a_msg.count + 1)
create a_package.make_from_managed_pointer (a_data)
send (a_package, 1)
end
feature -- Output
put_readable_string_8 (s: READABLE_STRING_8)
-- Write readable string `s' to socket.
local
ext: C_STRING
do
create ext.make (s)
put_managed_pointer (ext.managed_data, 0, s.count)
end
feature -- Status report
try_ready_for_reading: BOOLEAN
-- Is data available for reading from the socket right now?
require
socket_exists: exists
local
retval: INTEGER
do
retval := c_select_poll_with_timeout (descriptor, True, 0)
Result := (retval > 0)
end
note
copyright: "2011-2015, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,91 @@
class URI_CONTENTS_TYPES
create
make
feature
content_types: HASH_TABLE [STRING, STRING]
extension (uri: STRING): STRING
-- extract extendion from a URI
local
i: INTEGER
do
-- going from the end find the position of the "."
from
i := uri.count
until
i = 0 or else uri.item (i) = '.'
loop
i := i - 1
end
Result := uri.substring (i+1, uri.count)
end
feature {NONE}
make
do
create content_types.make (30)
content_types.put ("text/html", "html")
content_types.put ("text/html", "htm")
content_types.put ("image/gif", "gif")
content_types.put ("image/jpeg", "jpeg")
content_types.put ("image/png", "jpg")
content_types.put ("image/png", "png")
end
feature -- Access: Encoding
urlencode (s: STRING): STRING
-- URL encode `s'
do
Result := s.string
Result.replace_substring_all ("#", "%%23")
Result.replace_substring_all (" ", "%%20")
Result.replace_substring_all ("%T", "%%09")
Result.replace_substring_all ("%N", "%%0A")
Result.replace_substring_all ("/", "%%2F")
Result.replace_substring_all ("&", "%%26")
Result.replace_substring_all ("<", "%%3C")
Result.replace_substring_all ("=", "%%3D")
Result.replace_substring_all (">", "%%3E")
Result.replace_substring_all ("%"", "%%22")
Result.replace_substring_all ("%'", "%%27")
end
urldecode (s: STRING): STRING
-- URL decode `s'
do
Result := s.string
Result.replace_substring_all ("%%23", "#")
Result.replace_substring_all ("%%20", " ")
Result.replace_substring_all ("%%09", "%T")
Result.replace_substring_all ("%%0A", "%N")
Result.replace_substring_all ("%%2F", "/")
Result.replace_substring_all ("%%26", "&")
Result.replace_substring_all ("%%3C", "<")
Result.replace_substring_all ("%%3D", "=")
Result.replace_substring_all ("%%3E", ">")
Result.replace_substring_all ("%%22", "%"")
Result.replace_substring_all ("%%27", "%'")
end
stripslashes (s: STRING): STRING
do
Result := s.string
Result.replace_substring_all ("\%"", "%"")
Result.replace_substring_all ("\'", "'")
Result.replace_substring_all ("\/", "/")
Result.replace_substring_all ("\\", "\")
end
note
copyright: "2011-2011, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -0,0 +1,4 @@
${NOTE_KEYWORD}
copyright: "2011-${YEAR}, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-12-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-12-0 http://www.eiffel.com/developers/xml/configuration-1-12-0.xsd" name="nino" uuid="32C1D67D-33DE-4F1E-864B-D45388F2E3E6" library_target="nino">
<target name="nino">
<root all_classes="true"/>
<file_rule>
<exclude>/.git$</exclude>
<exclude>/EIFGENs$</exclude>
<exclude>/CVS$</exclude>
<exclude>/.svn$</exclude>
</file_rule>
<option warning="true" full_class_checking="false" is_attached_by_default="true" void_safety="all" syntax="transitional">
<assertions precondition="true" postcondition="true" check="true" invariant="true" loop="true" supplier_precondition="true"/>
</option>
<setting name="concurrency" value="thread"/>
<library name="base" location="$ISE_LIBRARY\library\base\base-safe.ecf"/>
<library name="net" location="$ISE_LIBRARY\library\net\net-safe.ecf"/>
<library name="thread" location="$ISE_LIBRARY\library\thread\thread-safe.ecf"/>
<cluster name="nino" location=".\library\" recursive="true">
<file_rule>
<exclude>spec</exclude>
</file_rule>
<file_rule>
<exclude>tcp_stream_socket.e</exclude>
<condition>
<version type="compiler" max="16.11"/>
</condition>
</file_rule>
</cluster>
<cluster name="spec_until_16_05" location=".\library\spec\until_16_05\" recursive="true">
<condition>
<version type="compiler" max="16.11"/>
</condition>
</cluster>
</target>
</system>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<system xmlns="http://www.eiffel.com/developers/xml/configuration-1-8-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-8-0 http://www.eiffel.com/developers/xml/configuration-1-8-0.xsd" name="nino" uuid="32C1D67D-33DE-4F1E-864B-D45388F2E3E6" library_target="nino">
<target name="nino">
<root all_classes="true"/>
<file_rule>
<exclude>/.git$</exclude>
<exclude>/EIFGENs$</exclude>
<exclude>/CVS$</exclude>
<exclude>/.svn$</exclude>
</file_rule>
<option warning="true" void_safety="none">
<assertions precondition="true" postcondition="true" check="true" invariant="true" loop="true" supplier_precondition="true"/>
</option>
<setting name="concurrency" value="thread"/>
<library name="base" location="$ISE_LIBRARY\library\base\base.ecf"/>
<library name="net" location="$ISE_LIBRARY\library\net\net.ecf"/>
<library name="thread" location="$ISE_LIBRARY\library\thread\thread.ecf"/>
<cluster name="nino" location=".\library\" recursive="true">
<file_rule>
<exclude>spec</exclude>
</file_rule>
<file_rule>
<exclude>tcp_stream_socket.e</exclude>
<condition>
<version type="compiler" max="16.11"/>
</condition>
</file_rule>
</cluster>
<cluster name="spec_until_16_05" location=".\library\spec\until_16_05\" recursive="true">
<condition>
<version type="compiler" max="16.11"/>
</condition>
</cluster>
</target>
</system>

Some files were not shown because too many files have changed in this diff Show More