From bde0e2900bb3c2cff7a0d88f8966bf995a92acab Mon Sep 17 00:00:00 2001 From: jvelilla Date: Tue, 1 Jul 2014 04:42:56 -0700 Subject: [PATCH 1/7] Created Deployment (markdown) --- Deployment.md | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 Deployment.md diff --git a/Deployment.md b/Deployment.md new file mode 100644 index 00000000..2c0eb2fe --- /dev/null +++ b/Deployment.md @@ -0,0 +1,125 @@ +EWF Deployment +============== + +##Apache on Windows +###Apache Install + + - Check the correct version (Win 32 or Win64) + - Apache Version:  Apache 2.4.4 + - Windows: http://www.apachelounge.com/download/ + +###Deploying EWF CGI + +####CGI overview +> A new process is started for each HTTP request. So if there are N request to the same CGI +> program, the code of the CGI program is loaded into memory N times. +> When a CGI program finished handling a request,  the program terminates + +1. Build EWF application. + + ec ­config app.ecf ­target app_cgi ­finalize ­c_compile ­project_path . + Note: change app.ecf and target app_cgi  based on your own configuration. +2. Copy the generated exe file and the www content. + + ``` + Copy the app.exe and the folder www into a folder served by apache2, for example under + /htdocs +  = path to your apache installation + Edit httpd.conf under c://conf + DocumentRoot "c://htdocs" + /htdocs"> + AllowOverride All -- + Require all granted -- this is required in Apache 2.4.4 + + ``` + +3. Check that you have the following modules enabled. + + ``` + LoadModule cgi_module modules/mod_cgi.so + LoadModule rewrite_module modules/mod_rewrite.so + ``` + +*Tip:* +To check the syntax of your httpd.conf file. From command line run the following. + + $>httpd - t + +####.htaccess CGI +http://perishablepress.com/stupid­htaccess­trics/ + + Options +ExecCGI +Includes +FollowSymLinks ­Indexes + AddHandler cgi­script exe + +   RewriteEngine on +   RewriteRule ^$ $service [L] + RewriteCond %{REQUEST_FILENAME} !­f + RewriteCond %{REQUEST_FILENAME} !­d + RewriteCond %{REQUEST_URI} !$service +   RewriteRule ^(.*)$ $service/$1 + RewriteRule .* ­ [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] + FastCGI allows a single, long­running process to handle more than one user request while keeping close to +> the CGI programming model, retaining the simplicity while eliminating the overhead of creating a new +> process for each request. Unlike converting an application to a web server plug­in, FastCGI applications +> remain independent of the web server. + +1. Build EWF application + + ec ­config app.ecf ­target app_fcgi ­finalize ­c_compile ­project_path . + Note: change app.ecf and target app_fcgi  based on your own configuration. + +2. Copy the generated exe file and the www content + + + Copy the app.exe and the folder "www"  into a folder served by apache2, for example under + /htdocs. +  = path to your apache installation + Edit httpd.conf under c://conf + + DocumentRoot "c://htdocs" + /htdocs"> + AllowOverride All -- + Require all granted -- this is required in Apache 2.4.4 + + +Check that you have the following modules enabled. + + LoadModule rewrite_module modules/mod_rewrite.so + LoadModule fcgid_module modules/mod_fcgid.so + +By default Apache does not comes with fcgid module, so you will need to +download it, and put the module under Apache2/modules + +####.htaccess FCGI +http://perishablepress.com/stupid­htaccess­tricks/ + + Options +ExecCGI +Includes +FollowSymLinks ­Indexes + + AddHandler fcgid­script .ews + FcgidWrapper $FULL_PATH/$service .ews + + +   RewriteEngine on +   RewriteBase / +   RewriteRule ^$ service.ews [L] +   RewriteCond %{REQUEST_FILENAME} !­f +   RewriteCond %{REQUEST_FILENAME} !­d +   RewriteCond %{REQUEST_URI} !=/favicon.ico +   RewriteCond %{REQUEST_URI} !service.ews +   RewriteRule ^(.*)$ service.ews/$1  RewriteRule .* ­ [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] + + +Replace $service with the name of your executable $service, for example app_service.exe +You will need to create an service.ews file, this file will be located at the same place where you +copy your app service executable. From a5a257f452a162f466b021a157ebd68c387703fc Mon Sep 17 00:00:00 2001 From: jvelilla Date: Tue, 1 Jul 2014 04:47:23 -0700 Subject: [PATCH 2/7] Update format --- Deployment.md | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Deployment.md b/Deployment.md index 2c0eb2fe..7ce8ffe5 100644 --- a/Deployment.md +++ b/Deployment.md @@ -17,8 +17,10 @@ EWF Deployment 1. Build EWF application. + ``` ec ­config app.ecf ­target app_cgi ­finalize ­c_compile ­project_path . Note: change app.ecf and target app_cgi  based on your own configuration. + ``` 2. Copy the generated exe file and the www content. ``` @@ -42,12 +44,14 @@ EWF Deployment *Tip:* To check the syntax of your httpd.conf file. From command line run the following. - + + ``` $>httpd - t - + ``` ####.htaccess CGI http://perishablepress.com/stupid­htaccess­trics/ +``` Options +ExecCGI +Includes +FollowSymLinks ­Indexes AddHandler cgi­script exe @@ -59,7 +63,7 @@ http://perishablepress.com/stupid­htaccess­trics/   RewriteRule ^(.*)$ $service/$1 RewriteRule .* ­ [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] /htdocs.  = path to your apache installation @@ -92,11 +97,13 @@ Replace $service with the name of your executable service, for example AllowOverride All -- Require all granted -- this is required in Apache 2.4.4 - + ``` Check that you have the following modules enabled. + ``` LoadModule rewrite_module modules/mod_rewrite.so LoadModule fcgid_module modules/mod_fcgid.so + ``` By default Apache does not comes with fcgid module, so you will need to download it, and put the module under Apache2/modules @@ -104,6 +111,7 @@ download it, and put the module under Apache2/modules ####.htaccess FCGI http://perishablepress.com/stupid­htaccess­tricks/ +``` Options +ExecCGI +Includes +FollowSymLinks ­Indexes AddHandler fcgid­script .ews @@ -119,7 +127,7 @@ http://perishablepress.com/stupid­htaccess­tricks/   RewriteCond %{REQUEST_URI} !service.ews   RewriteRule ^(.*)$ service.ews/$1  RewriteRule .* ­ [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] - +``` Replace $service with the name of your executable $service, for example app_service.exe You will need to create an service.ews file, this file will be located at the same place where you copy your app service executable. From 91d7b956b90c3db369560548876bcbadc238f4bc Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Tue, 5 May 2015 09:58:36 +0200 Subject: [PATCH 3/7] update README to add google groups info. --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 029f4f1e..edc468df 100644 --- a/README.md +++ b/README.md @@ -38,11 +38,12 @@ For download, check 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 ## Requirements -* Compiling from EiffelStudio 7.2 to 13.11 and more recent version of the compiler. -* Developped using EiffelStudio 13.11 (on Windows, Linux) -* Tested using EiffelStudio 13.11 with "jenkins" CI server (not anymore compatible with 6.8 due to use of `TABLE_ITERABLE') +* 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) ) ## How to get the source code? @@ -100,6 +101,7 @@ review the [guidelines for contributing](CONTRIBUTING.md). 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) From 71c90a2f39f4fb962d55c3f1b0bed5cef00e25bb Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Tue, 5 May 2015 10:22:21 +0200 Subject: [PATCH 4/7] Updated mediawiki and markdown link to local pages, in order to use those files as browseable documentation, and close the github wiki. --- doc/wiki/Doc_Getting_Started.mediawiki | 4 ++-- doc/wiki/Doc_Index.mediawiki | 4 ++-- doc/wiki/Documentation.md | 24 +++++++++---------- doc/wiki/EWSGI.md | 4 ++-- doc/wiki/Home.md | 18 +++++++------- doc/wiki/Projects-new-suggestions.md | 2 +- doc/wiki/Projects.md | 2 +- doc/wiki/Using-the-policy-driven-framework.md | 2 +- doc/wiki/Writing-the-handlers.md | 6 ++--- doc/wiki/roadmap.md | 2 +- 10 files changed, 34 insertions(+), 34 deletions(-) diff --git a/doc/wiki/Doc_Getting_Started.mediawiki b/doc/wiki/Doc_Getting_Started.mediawiki index 550862d8..865d432a 100644 --- a/doc/wiki/Doc_Getting_Started.mediawiki +++ b/doc/wiki/Doc_Getting_Started.mediawiki @@ -1,4 +1,4 @@ -Menu :: [[Doc_Getting_Started|Getting Started]] :: [[Doc_Community|Community]] +Menu :: [[Doc_Getting_Started.mediawiki|Getting Started]] :: [[Community-collaboration.md|Community]] = Getting Started = This page will help you to get started with EWF. We will first see how to install EWF and then how to compile and run the venerable Hello World example. @@ -54,4 +54,4 @@ To do this, we will redefine the feature initialize as follows: After one more compile, you can now launch the application and point your browser to [http://localhost:9090]. -You should now see a simple page with Hello World. \ No newline at end of file +You should now see a simple page with Hello World. diff --git a/doc/wiki/Doc_Index.mediawiki b/doc/wiki/Doc_Index.mediawiki index 90016448..f5e9c3e2 100644 --- a/doc/wiki/Doc_Index.mediawiki +++ b/doc/wiki/Doc_Index.mediawiki @@ -1,7 +1,7 @@ -Menu :: [[Doc_Getting_Started|Getting Started]] :: [[Doc_Community|Community]] +Menu :: [[Doc_Getting_Started.mediawiki|Getting Started]] :: [[Community-collaboration.md|Community]] = Eiffel Web Framework = Framework to build web applications in Eiffel [ [http://github.com/EiffelWebFramework/EWF/zipball/ Download Current] ] -[ [http://github.com/EiffelWebFramework/EWF/zipball/release-0.3 Download v0.3] ] \ No newline at end of file +[ [http://github.com/EiffelWebFramework/EWF/zipball/release-0.3 Download v0.3] ] diff --git a/doc/wiki/Documentation.md b/doc/wiki/Documentation.md index 89c4264c..8101379c 100644 --- a/doc/wiki/Documentation.md +++ b/doc/wiki/Documentation.md @@ -27,7 +27,7 @@ This is the low level of the framework, at this point, `req` provides access to The response `res` is the interface to send data back to the client. For convenience, the framework provides richer service interface that handles the most common needs (filter, router, ...). -> [Learn more about service](Documentation__Service) +> [Learn more about service](Documentation__Service.md) @@ -50,7 +50,7 @@ Any incoming http request is represented by an new object of type **WSF_REQUEST* The **WSF_RESPONSE** represents the communication toward the client, a service need to provide correct headers, and content. For instance the `Content-Type`, and `Content-Length`. It also allows to send data with chunked encoding. -> [Learn more about request](Documentation__Request) and [about response](Documentation__Response) +> [Learn more about request](Documentation__Request.md) and [about response](Documentation__Response.md) @@ -66,7 +66,7 @@ Currently 3 main connectors are available: At compilation time, you can use a default connector (by using the associated default lib), but you can also use a mixed of them and choose which one to execute at runtime. It is fairly easy to add new connector, it just has to follow the EWSGI interface -> [Learn more about connector](Documentation__Connector) +> [Learn more about connector](Documentation__Connector.md) @@ -113,7 +113,7 @@ How we do that in EWF? : Router with (or without context). Related code: wsf_router, wsf_router_context Examples -> [Learn more about router](Documentation__Router) +> [Learn more about router](Documentation__Router.md) # EWF components ## URI Handler: @@ -180,25 +180,25 @@ examples External libraries are included, such as Cypress OAuth (Security), HTML parsing library, Template Engine Smarty. ## server -* __ewsgi__: Eiffel Web Server Gateway Interface read more +* __ewsgi__: Eiffel Web Server Gateway Interface [read more](EWSGI.md). * connectors: various web server connectors for EWSGI * __libfcgi__: Wrapper for libfcgi SDK -* __wsf__: Web Server Framework [read more] - * __router__: URL dispatching/routing based on uri, uri_template, or custom read more +* __wsf__: Web Server Framework + * __router__: URL dispatching/routing based on uri, uri_template, or custom [read more](Documentation__Router.md). * __wsf_html__: (html and css) Content generator from the server side. * CMS example: ## protocol -* __http__: HTTP related classes, constants for status code, content types, ... read more -* __uri_template__: URI Template library (parsing and expander) read more -* __content_negotiation__: CONNEG library (Content-type Negociation) read more +* __http__: HTTP related classes, constants for status code, content types, ... +* __uri_template__: URI Template library (parsing and expander) +* __content_negotiation__: CONNEG library (Content-type Negociation) ## Client -* __http_client__: simple HTTP client based on cURL readmore +* __http_client__: simple HTTP client based on cURL * __Firebase API__: ## Text -* __encoder__: Various simple encoders: base64, url-encoder, xml entities, html entities read more +* __encoder__: Various simple encoders: base64, url-encoder, xml entities, html entities ## Utils * __error__: very simple/basic library to handle error diff --git a/doc/wiki/EWSGI.md b/doc/wiki/EWSGI.md index 42a4fbbc..7b34869f 100644 --- a/doc/wiki/EWSGI.md +++ b/doc/wiki/EWSGI.md @@ -1,5 +1,5 @@ -- See proposed specifications: [EWSGI specification](./EWSGI-specification) -- See [Open questions](./EWSGI-Open-Questions) +- See proposed specifications: [EWSGI specification](EWSGI-specification.md) +- See [Open questions](EWSGI-Open-Questions.md) - And below the various proposals and associated decision ---- diff --git a/doc/wiki/Home.md b/doc/wiki/Home.md index 16806d74..1ae8df4b 100644 --- a/doc/wiki/Home.md +++ b/doc/wiki/Home.md @@ -6,21 +6,21 @@ The official documentation/wiki is located at [https://github.com/EiffelWebFrame ## Organization ## - Mailing list: please visit and subscribe to the mailing list page [http://groups.google.com/group/eiffel-web-framework](http://groups.google.com/group/eiffel-web-framework) ![logo](http://groups.google.com/intl/en/images/logos/groups_logo_sm.gif) - Most of the topics are discussed on the mailing list (google group). -- For time to time we have [web meetings](./wiki/Meetings), and less frequently [physical meetings](./wiki/Meetings) that occurs usually during other Eiffel related events. +- For time to time we have [web meetings](./wiki/Meetings), and less frequently [physical meetings](Meetings.md) that occurs usually during other Eiffel related events. ## Documentation ## - [Documentation](./Documentation) ## Contributions ## -- You want to contribute or follow the progress/discussion, see the [collaboration page](./wiki/Community-collaboration) -- Potential tasks/projects on EWF: [Projects page](./wiki/Projects) +- You want to contribute or follow the progress/discussion, see the [collaboration page](Community-collaboration.md) +- Potential tasks/projects on EWF: [Projects page](Projects.md) ## See also ## - - [list of tasks, and a potential roadmap](./wiki/Tasks-Roadmap) - - [General source structure of this project](./wiki/Source-structure) - - EWSGI: [Eiffel Web Server Gateway Interface](./wiki/EWSGI) - - [Overview of the server side architecture](./wiki/Spec-Server-Architecture) - - This project is also a collection of [Libraries](./wiki/Libraries) related to the Web + - [list of tasks, and a potential roadmap](Tasks-Roadmap.md) + - [General source structure of this project](Source-structure.md) + - EWSGI: [Eiffel Web Server Gateway Interface](EWSGI.md) + - [Overview of the server side architecture](Spec-Server-Architecture.md) + - This project is also a collection of [Libraries](Libraries.md) related to the Web ## Note ## - - This wiki needs to be updated, in the meantime, please have a look at the presentation: [https://docs.google.com/presentation/pub?id=1GPFv6aHhTjFSLMnlAt-J4WeIHSGfHdB42dQxmOVOH8s&start=false&loop=false&delayms=3000](https://docs.google.com/presentation/pub?id=1GPFv6aHhTjFSLMnlAt-J4WeIHSGfHdB42dQxmOVOH8s&start=false&loop=false&delayms=3000) \ No newline at end of file + - This wiki needs to be updated, in the meantime, please have a look at the presentation: [https://docs.google.com/presentation/pub?id=1GPFv6aHhTjFSLMnlAt-J4WeIHSGfHdB42dQxmOVOH8s&start=false&loop=false&delayms=3000](https://docs.google.com/presentation/pub?id=1GPFv6aHhTjFSLMnlAt-J4WeIHSGfHdB42dQxmOVOH8s&start=false&loop=false&delayms=3000) diff --git a/doc/wiki/Projects-new-suggestions.md b/doc/wiki/Projects-new-suggestions.md index 8ebc7ea9..5b1c1b4d 100644 --- a/doc/wiki/Projects-new-suggestions.md +++ b/doc/wiki/Projects-new-suggestions.md @@ -1,5 +1,5 @@ Use this to suggest new projects, or request features. -The content of this page will be moved to the main [Projects](./Projects) page for time to time. +The content of this page will be moved to the main [Projects](Projects.md) page for time to time. For any entry, please use this template ---- diff --git a/doc/wiki/Projects.md b/doc/wiki/Projects.md index 92bce9d8..58e49f21 100644 --- a/doc/wiki/Projects.md +++ b/doc/wiki/Projects.md @@ -236,4 +236,4 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ---- # Feel free to add new idea below this line ---- -Use the following page [Projects new suggestions](./Projects new suggestions) to suggest new project, or request a feature. \ No newline at end of file +Use the following page [Projects new suggestions](Projects-new-suggestions.md) to suggest new project, or request a feature. diff --git a/doc/wiki/Using-the-policy-driven-framework.md b/doc/wiki/Using-the-policy-driven-framework.md index 12d085e4..b9fa279c 100644 --- a/doc/wiki/Using-the-policy-driven-framework.md +++ b/doc/wiki/Using-the-policy-driven-framework.md @@ -23,4 +23,4 @@ is_system_options_forbidden. WSF_ROUTED_SKELETON_SERVICE also inherits from WSF_PROXY_USE_POLICY. This determines if the server will require clients to use a proxy server. By default, it will do so for HTTP/1.0 clients. This is a sensible default, as the framework assumes an HTTP/1.1 client throughout. If you are sure that you will only ever have HTTP/1.1 clients, then you can instead inherit from WSF_NO_PROXY_POLICY, as RESTBUCKS_SERVER does. If not, then you need to implement proxy_server. -Next you have to [write your handler(s)](./Writing-the-handlers) \ No newline at end of file +Next you have to [write your handler(s)](Writing-the-handlers.md) diff --git a/doc/wiki/Writing-the-handlers.md b/doc/wiki/Writing-the-handlers.md index 87e68a2c..bf404c2a 100644 --- a/doc/wiki/Writing-the-handlers.md +++ b/doc/wiki/Writing-the-handlers.md @@ -218,6 +218,6 @@ This routine is called for a normal (updating) PUT request. You have to update t ## Implementing the policies -* [WSF_OPTIONS_POLICY](./WSF_OPTIONS_POLICY) -* [WSF_PREVIOUS_POLICY](./Wsf-previous-policy) -* [WSF_CACHING_POLICY](./Wsf-caching-policy) \ No newline at end of file +* [WSF_OPTIONS_POLICY](WSF_OPTIONS_POLICY.md) +* [WSF_PREVIOUS_POLICY](Wsf-previous-policy.md) +* [WSF_CACHING_POLICY](Wsf-caching-policy.md) diff --git a/doc/wiki/roadmap.md b/doc/wiki/roadmap.md index a0b733b5..9516a246 100644 --- a/doc/wiki/roadmap.md +++ b/doc/wiki/roadmap.md @@ -1,4 +1,4 @@ # Upcoming versions # Current state: oct-2013 -- check previous wiki page: [Tasks roadmap](./Tasks roadmap) \ No newline at end of file +- check previous wiki page: [Tasks roadmap](Tasks-roadmap.md) From 525978db1d192b2534800ec0f03131b175a0b5c9 Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Tue, 5 May 2015 10:57:58 +0200 Subject: [PATCH 5/7] Update doc structure, and fixed a few links. --- doc/wiki/Doc_Index.mediawiki | 2 +- doc/wiki/Documentation-_Router.md | 1 - doc/wiki/Documentation__Connector.md | 1 - doc/wiki/Documentation__Router.md | 1 - .../Open-Questions.md} | 0 doc/wiki/{EWSGI.md => EWSGI/index.md} | 0 ...ification---difference-in-main-proposals.md} | 0 .../specification.md} | 0 doc/wiki/Home.md | 12 ++++++------ ...{Community-collaboration.md => community.md} | 0 doc/wiki/{ => documentation}/Connectors.md | 3 +++ doc/wiki/{ => documentation}/Filter.md | 0 .../{ => documentation}/HTTP-client-library.md | 0 doc/wiki/{ => documentation}/Library-conneg.md | 0 .../{ => documentation}/Request-and-response.md | 0 .../Request.md} | 0 .../Response.md} | 0 doc/wiki/{ => documentation}/Router.md | 5 ++++- .../Service.md} | 0 .../index.md} | 17 +++++++++-------- .../Using-the-policy-driven-framework.md | 0 .../WSF_OPTIONS_POLICY.md | 0 .../Writing-the-handlers.md | 0 .../Wsf-caching-policy.md | 0 .../Wsf-previous-policy.md | 0 doc/wiki/{ => project}/Meetings.md | 2 +- .../{ => project}/Projects-new-suggestions.md | 0 doc/wiki/{ => project}/Projects.md | 0 doc/wiki/{ => project}/Task-json.md | 0 doc/wiki/{ => project}/Tasks-Roadmap.md | 4 ++-- doc/wiki/{ => project}/Useful-links.md | 0 .../meetings}/Web-meeting-2012-09-18.md | 0 doc/wiki/{ => project}/roadmap.md | 0 33 files changed, 26 insertions(+), 22 deletions(-) delete mode 100644 doc/wiki/Documentation-_Router.md delete mode 100644 doc/wiki/Documentation__Connector.md delete mode 100644 doc/wiki/Documentation__Router.md rename doc/wiki/{EWSGI-Open-Questions.md => EWSGI/Open-Questions.md} (100%) rename doc/wiki/{EWSGI.md => EWSGI/index.md} (100%) rename doc/wiki/{EWSGI-specification---difference-in-main-proposals.md => EWSGI/specification---difference-in-main-proposals.md} (100%) rename doc/wiki/{EWSGI-specification.md => EWSGI/specification.md} (100%) rename doc/wiki/{Community-collaboration.md => community.md} (100%) rename doc/wiki/{ => documentation}/Connectors.md (99%) rename doc/wiki/{ => documentation}/Filter.md (100%) rename doc/wiki/{ => documentation}/HTTP-client-library.md (100%) rename doc/wiki/{ => documentation}/Library-conneg.md (100%) rename doc/wiki/{ => documentation}/Request-and-response.md (100%) rename doc/wiki/{Documentation__Request.md => documentation/Request.md} (100%) rename doc/wiki/{Documentation__Response.md => documentation/Response.md} (100%) rename doc/wiki/{ => documentation}/Router.md (65%) rename doc/wiki/{Documentation__Service.md => documentation/Service.md} (100%) rename doc/wiki/{Documentation.md => documentation/index.md} (94%) rename doc/wiki/{ => policy-driven-framework}/Using-the-policy-driven-framework.md (100%) rename doc/wiki/{ => policy-driven-framework}/WSF_OPTIONS_POLICY.md (100%) rename doc/wiki/{ => policy-driven-framework}/Writing-the-handlers.md (100%) rename doc/wiki/{ => policy-driven-framework}/Wsf-caching-policy.md (100%) rename doc/wiki/{ => policy-driven-framework}/Wsf-previous-policy.md (100%) rename doc/wiki/{ => project}/Meetings.md (78%) rename doc/wiki/{ => project}/Projects-new-suggestions.md (100%) rename doc/wiki/{ => project}/Projects.md (100%) rename doc/wiki/{ => project}/Task-json.md (100%) rename doc/wiki/{ => project}/Tasks-Roadmap.md (90%) rename doc/wiki/{ => project}/Useful-links.md (100%) rename doc/wiki/{ => project/meetings}/Web-meeting-2012-09-18.md (100%) rename doc/wiki/{ => project}/roadmap.md (100%) diff --git a/doc/wiki/Doc_Index.mediawiki b/doc/wiki/Doc_Index.mediawiki index f5e9c3e2..9f195ef9 100644 --- a/doc/wiki/Doc_Index.mediawiki +++ b/doc/wiki/Doc_Index.mediawiki @@ -1,4 +1,4 @@ -Menu :: [[Doc_Getting_Started.mediawiki|Getting Started]] :: [[Community-collaboration.md|Community]] +Menu :: [[Doc_Getting_Started.mediawiki|Getting Started]] :: [[community.md|Community]] = Eiffel Web Framework = Framework to build web applications in Eiffel diff --git a/doc/wiki/Documentation-_Router.md b/doc/wiki/Documentation-_Router.md deleted file mode 100644 index 3207e4a6..00000000 --- a/doc/wiki/Documentation-_Router.md +++ /dev/null @@ -1 +0,0 @@ -See WSF_ROUTER \ No newline at end of file diff --git a/doc/wiki/Documentation__Connector.md b/doc/wiki/Documentation__Connector.md deleted file mode 100644 index b76dce29..00000000 --- a/doc/wiki/Documentation__Connector.md +++ /dev/null @@ -1 +0,0 @@ -See WSF_CONNECTOR \ No newline at end of file diff --git a/doc/wiki/Documentation__Router.md b/doc/wiki/Documentation__Router.md deleted file mode 100644 index 3207e4a6..00000000 --- a/doc/wiki/Documentation__Router.md +++ /dev/null @@ -1 +0,0 @@ -See WSF_ROUTER \ No newline at end of file diff --git a/doc/wiki/EWSGI-Open-Questions.md b/doc/wiki/EWSGI/Open-Questions.md similarity index 100% rename from doc/wiki/EWSGI-Open-Questions.md rename to doc/wiki/EWSGI/Open-Questions.md diff --git a/doc/wiki/EWSGI.md b/doc/wiki/EWSGI/index.md similarity index 100% rename from doc/wiki/EWSGI.md rename to doc/wiki/EWSGI/index.md diff --git a/doc/wiki/EWSGI-specification---difference-in-main-proposals.md b/doc/wiki/EWSGI/specification---difference-in-main-proposals.md similarity index 100% rename from doc/wiki/EWSGI-specification---difference-in-main-proposals.md rename to doc/wiki/EWSGI/specification---difference-in-main-proposals.md diff --git a/doc/wiki/EWSGI-specification.md b/doc/wiki/EWSGI/specification.md similarity index 100% rename from doc/wiki/EWSGI-specification.md rename to doc/wiki/EWSGI/specification.md diff --git a/doc/wiki/Home.md b/doc/wiki/Home.md index 1ae8df4b..b238d84b 100644 --- a/doc/wiki/Home.md +++ b/doc/wiki/Home.md @@ -6,19 +6,19 @@ The official documentation/wiki is located at [https://github.com/EiffelWebFrame ## Organization ## - Mailing list: please visit and subscribe to the mailing list page [http://groups.google.com/group/eiffel-web-framework](http://groups.google.com/group/eiffel-web-framework) ![logo](http://groups.google.com/intl/en/images/logos/groups_logo_sm.gif) - Most of the topics are discussed on the mailing list (google group). -- For time to time we have [web meetings](./wiki/Meetings), and less frequently [physical meetings](Meetings.md) that occurs usually during other Eiffel related events. +- For time to time we have [web meetings](project/Meetings.md), and less frequently [physical meetings](project/Meetings.md) that occurs usually during other Eiffel related events. ## Documentation ## -- [Documentation](./Documentation) +- [Documentation](documentation/index.md) ## Contributions ## -- You want to contribute or follow the progress/discussion, see the [collaboration page](Community-collaboration.md) -- Potential tasks/projects on EWF: [Projects page](Projects.md) +- You want to contribute or follow the progress/discussion, see the [collaboration page](community.md) +- Potential tasks/projects on EWF: [Projects page](project/Projects.md) ## See also ## - - [list of tasks, and a potential roadmap](Tasks-Roadmap.md) + - [list of tasks, and a potential roadmap](project/Tasks-Roadmap.md) - [General source structure of this project](Source-structure.md) - - EWSGI: [Eiffel Web Server Gateway Interface](EWSGI.md) + - EWSGI: [Eiffel Web Server Gateway Interface](EWSGI/index.md) - [Overview of the server side architecture](Spec-Server-Architecture.md) - This project is also a collection of [Libraries](Libraries.md) related to the Web diff --git a/doc/wiki/Community-collaboration.md b/doc/wiki/community.md similarity index 100% rename from doc/wiki/Community-collaboration.md rename to doc/wiki/community.md diff --git a/doc/wiki/Connectors.md b/doc/wiki/documentation/Connectors.md similarity index 99% rename from doc/wiki/Connectors.md rename to doc/wiki/documentation/Connectors.md index c3d8f646..6f64aca5 100644 --- a/doc/wiki/Connectors.md +++ b/doc/wiki/documentation/Connectors.md @@ -46,3 +46,6 @@ It's fairly easy to write your own connector. Just inherit from these classes: * WGI_INPUT_STREAM * WGI_OUTPUT_STREAM * WSF_SERVICE_LAUNCHER + + +See WSF_CONNECTOR diff --git a/doc/wiki/Filter.md b/doc/wiki/documentation/Filter.md similarity index 100% rename from doc/wiki/Filter.md rename to doc/wiki/documentation/Filter.md diff --git a/doc/wiki/HTTP-client-library.md b/doc/wiki/documentation/HTTP-client-library.md similarity index 100% rename from doc/wiki/HTTP-client-library.md rename to doc/wiki/documentation/HTTP-client-library.md diff --git a/doc/wiki/Library-conneg.md b/doc/wiki/documentation/Library-conneg.md similarity index 100% rename from doc/wiki/Library-conneg.md rename to doc/wiki/documentation/Library-conneg.md diff --git a/doc/wiki/Request-and-response.md b/doc/wiki/documentation/Request-and-response.md similarity index 100% rename from doc/wiki/Request-and-response.md rename to doc/wiki/documentation/Request-and-response.md diff --git a/doc/wiki/Documentation__Request.md b/doc/wiki/documentation/Request.md similarity index 100% rename from doc/wiki/Documentation__Request.md rename to doc/wiki/documentation/Request.md diff --git a/doc/wiki/Documentation__Response.md b/doc/wiki/documentation/Response.md similarity index 100% rename from doc/wiki/Documentation__Response.md rename to doc/wiki/documentation/Response.md diff --git a/doc/wiki/Router.md b/doc/wiki/documentation/Router.md similarity index 65% rename from doc/wiki/Router.md rename to doc/wiki/documentation/Router.md index 0b208861..75571e7d 100644 --- a/doc/wiki/Router.md +++ b/doc/wiki/documentation/Router.md @@ -1,3 +1,6 @@ The primary goal of the router (class _WSF_ROUTER_) is to dispatch requests according to the request URI. -**TODO**: describe the router interface \ No newline at end of file +See WSF_ROUTER + +**TODO**: describe the router interface + diff --git a/doc/wiki/Documentation__Service.md b/doc/wiki/documentation/Service.md similarity index 100% rename from doc/wiki/Documentation__Service.md rename to doc/wiki/documentation/Service.md diff --git a/doc/wiki/Documentation.md b/doc/wiki/documentation/index.md similarity index 94% rename from doc/wiki/Documentation.md rename to doc/wiki/documentation/index.md index 8101379c..7270daf5 100644 --- a/doc/wiki/Documentation.md +++ b/doc/wiki/documentation/index.md @@ -27,7 +27,7 @@ This is the low level of the framework, at this point, `req` provides access to The response `res` is the interface to send data back to the client. For convenience, the framework provides richer service interface that handles the most common needs (filter, router, ...). -> [Learn more about service](Documentation__Service.md) +> [Learn more about service](Service.md) @@ -50,7 +50,7 @@ Any incoming http request is represented by an new object of type **WSF_REQUEST* The **WSF_RESPONSE** represents the communication toward the client, a service need to provide correct headers, and content. For instance the `Content-Type`, and `Content-Length`. It also allows to send data with chunked encoding. -> [Learn more about request](Documentation__Request.md) and [about response](Documentation__Response.md) +> [Learn more about request](Request.md) and [about response](Response.md) @@ -66,7 +66,7 @@ Currently 3 main connectors are available: At compilation time, you can use a default connector (by using the associated default lib), but you can also use a mixed of them and choose which one to execute at runtime. It is fairly easy to add new connector, it just has to follow the EWSGI interface -> [Learn more about connector](Documentation__Connector.md) +> [Learn more about connector](Connector.md) @@ -113,7 +113,7 @@ How we do that in EWF? : Router with (or without context). Related code: wsf_router, wsf_router_context Examples -> [Learn more about router](Documentation__Router.md) +> [Learn more about router](Router.md) # EWF components ## URI Handler: @@ -180,21 +180,22 @@ examples External libraries are included, such as Cypress OAuth (Security), HTML parsing library, Template Engine Smarty. ## server -* __ewsgi__: Eiffel Web Server Gateway Interface [read more](EWSGI.md). +* __ewsgi__: Eiffel Web Server Gateway Interface [read more](../EWSGI/index.md). * connectors: various web server connectors for EWSGI * __libfcgi__: Wrapper for libfcgi SDK * __wsf__: Web Server Framework - * __router__: URL dispatching/routing based on uri, uri_template, or custom [read more](Documentation__Router.md). + * __router__: URL dispatching/routing based on uri, uri_template, or custom [read more](Router.md). + * __filter__: Filter chain [read more](Filter.md). * __wsf_html__: (html and css) Content generator from the server side. * CMS example: ## protocol * __http__: HTTP related classes, constants for status code, content types, ... * __uri_template__: URI Template library (parsing and expander) -* __content_negotiation__: CONNEG library (Content-type Negociation) +* __content_negotiation__: [CONNEG](Library-conneg.md) library (Content-type Negociation) ## Client -* __http_client__: simple HTTP client based on cURL +* __http_client__: simple [HTTP client](HTTP-client.library.md) based on cURL * __Firebase API__: ## Text diff --git a/doc/wiki/Using-the-policy-driven-framework.md b/doc/wiki/policy-driven-framework/Using-the-policy-driven-framework.md similarity index 100% rename from doc/wiki/Using-the-policy-driven-framework.md rename to doc/wiki/policy-driven-framework/Using-the-policy-driven-framework.md diff --git a/doc/wiki/WSF_OPTIONS_POLICY.md b/doc/wiki/policy-driven-framework/WSF_OPTIONS_POLICY.md similarity index 100% rename from doc/wiki/WSF_OPTIONS_POLICY.md rename to doc/wiki/policy-driven-framework/WSF_OPTIONS_POLICY.md diff --git a/doc/wiki/Writing-the-handlers.md b/doc/wiki/policy-driven-framework/Writing-the-handlers.md similarity index 100% rename from doc/wiki/Writing-the-handlers.md rename to doc/wiki/policy-driven-framework/Writing-the-handlers.md diff --git a/doc/wiki/Wsf-caching-policy.md b/doc/wiki/policy-driven-framework/Wsf-caching-policy.md similarity index 100% rename from doc/wiki/Wsf-caching-policy.md rename to doc/wiki/policy-driven-framework/Wsf-caching-policy.md diff --git a/doc/wiki/Wsf-previous-policy.md b/doc/wiki/policy-driven-framework/Wsf-previous-policy.md similarity index 100% rename from doc/wiki/Wsf-previous-policy.md rename to doc/wiki/policy-driven-framework/Wsf-previous-policy.md diff --git a/doc/wiki/Meetings.md b/doc/wiki/project/Meetings.md similarity index 78% rename from doc/wiki/Meetings.md rename to doc/wiki/project/Meetings.md index 05faf598..e93817e0 100644 --- a/doc/wiki/Meetings.md +++ b/doc/wiki/project/Meetings.md @@ -1,4 +1,4 @@ # Previous and future meetings -* [Web-meeting: 2012-09-18](./Web-meeting-2012-09-18) +* [Web-meeting: 2012-09-18](meetings/Web-meeting-2012-09-18.md) * For previous meetings, check the ["meeting" topics](https://groups.google.com/forum/?fromgroups=#!tags/eiffel-web-framework/meeting) on the [forum](http://groups.google.com/group/eiffel-web-framework) diff --git a/doc/wiki/Projects-new-suggestions.md b/doc/wiki/project/Projects-new-suggestions.md similarity index 100% rename from doc/wiki/Projects-new-suggestions.md rename to doc/wiki/project/Projects-new-suggestions.md diff --git a/doc/wiki/Projects.md b/doc/wiki/project/Projects.md similarity index 100% rename from doc/wiki/Projects.md rename to doc/wiki/project/Projects.md diff --git a/doc/wiki/Task-json.md b/doc/wiki/project/Task-json.md similarity index 100% rename from doc/wiki/Task-json.md rename to doc/wiki/project/Task-json.md diff --git a/doc/wiki/Tasks-Roadmap.md b/doc/wiki/project/Tasks-Roadmap.md similarity index 90% rename from doc/wiki/Tasks-Roadmap.md rename to doc/wiki/project/Tasks-Roadmap.md index 1a1a1a75..206f2bf5 100644 --- a/doc/wiki/Tasks-Roadmap.md +++ b/doc/wiki/project/Tasks-Roadmap.md @@ -1,4 +1,4 @@ -Check new roadmap wiki page: [roadmap](./roadmap) +Check new roadmap wiki page: [roadmap](roadmap.md) ## Future * Focus on REST API - Hypermedia API @@ -32,5 +32,5 @@ Check new roadmap wiki page: [roadmap](./roadmap) * Installation scripts ## Contributors ## - - See [the collaboration page](./Community-collaboration) + - See [the collaboration page](../community.md) diff --git a/doc/wiki/Useful-links.md b/doc/wiki/project/Useful-links.md similarity index 100% rename from doc/wiki/Useful-links.md rename to doc/wiki/project/Useful-links.md diff --git a/doc/wiki/Web-meeting-2012-09-18.md b/doc/wiki/project/meetings/Web-meeting-2012-09-18.md similarity index 100% rename from doc/wiki/Web-meeting-2012-09-18.md rename to doc/wiki/project/meetings/Web-meeting-2012-09-18.md diff --git a/doc/wiki/roadmap.md b/doc/wiki/project/roadmap.md similarity index 100% rename from doc/wiki/roadmap.md rename to doc/wiki/project/roadmap.md From 44757b73ebf71efc245e286f479b9f95d94020f5 Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Tue, 5 May 2015 11:10:36 +0200 Subject: [PATCH 6/7] Renamed Home.md as README.md --- doc/wiki/{Home.md => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename doc/wiki/{Home.md => README.md} (100%) diff --git a/doc/wiki/Home.md b/doc/wiki/README.md similarity index 100% rename from doc/wiki/Home.md rename to doc/wiki/README.md From c778e454cd2f5bb6be6ec1ebd1f5075402c24186 Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Tue, 5 May 2015 11:13:12 +0200 Subject: [PATCH 7/7] Renamed a few index.md as README.md --- doc/wiki/EWSGI/{index.md => README.md} | 0 doc/wiki/README.md | 4 ++-- doc/wiki/documentation/{index.md => README.md} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename doc/wiki/EWSGI/{index.md => README.md} (100%) rename doc/wiki/documentation/{index.md => README.md} (100%) diff --git a/doc/wiki/EWSGI/index.md b/doc/wiki/EWSGI/README.md similarity index 100% rename from doc/wiki/EWSGI/index.md rename to doc/wiki/EWSGI/README.md diff --git a/doc/wiki/README.md b/doc/wiki/README.md index b238d84b..eb1bffbd 100644 --- a/doc/wiki/README.md +++ b/doc/wiki/README.md @@ -9,7 +9,7 @@ The official documentation/wiki is located at [https://github.com/EiffelWebFrame - For time to time we have [web meetings](project/Meetings.md), and less frequently [physical meetings](project/Meetings.md) that occurs usually during other Eiffel related events. ## Documentation ## -- [Documentation](documentation/index.md) +- [Documentation](documentation/README.md) ## Contributions ## - You want to contribute or follow the progress/discussion, see the [collaboration page](community.md) @@ -18,7 +18,7 @@ The official documentation/wiki is located at [https://github.com/EiffelWebFrame ## See also ## - [list of tasks, and a potential roadmap](project/Tasks-Roadmap.md) - [General source structure of this project](Source-structure.md) - - EWSGI: [Eiffel Web Server Gateway Interface](EWSGI/index.md) + - EWSGI: [Eiffel Web Server Gateway Interface](EWSGI/README.md) - [Overview of the server side architecture](Spec-Server-Architecture.md) - This project is also a collection of [Libraries](Libraries.md) related to the Web diff --git a/doc/wiki/documentation/index.md b/doc/wiki/documentation/README.md similarity index 100% rename from doc/wiki/documentation/index.md rename to doc/wiki/documentation/README.md