<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fabioz</id>
		<title>EiffelStudio: an EiffelSoftware project - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fabioz"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Fabioz"/>
		<updated>2026-05-14T06:24:46Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13497</id>
		<title>Xebra Installation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13497"/>
				<updated>2009-10-08T09:04:32Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Ubuntu Installation Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installations=&lt;br /&gt;
===There are two ways to install Xebra:===&lt;br /&gt;
*Automatic&lt;br /&gt;
** A script for Ubuntu 9.04 that sets up xebra and also installs apache&lt;br /&gt;
** A Windows Installer that contains xebra and apache and sets it up&lt;br /&gt;
*Manual (Step-by-step guide)&lt;br /&gt;
** Ubuntu 9.04 with Apache&lt;br /&gt;
** Windows with Apache&lt;br /&gt;
** Windows with IIS7&lt;br /&gt;
&lt;br /&gt;
===A few notes===&lt;br /&gt;
*All of xebra is compiled with the -experiment option. We haven't tested to compile anything in non-experimental mode.&lt;br /&gt;
*Currently (rev 80407), for all types of installation you have to adapt a files in ISE_LIBRARY to make it work since there is a bug in the eiffel argument parser library: In the class ''ISE_EIFFEL/experimental/library/argument_parser/parsers/argument_base_parser.e'' in the feature ''arguments: ARRAY [STRING]'' replace the line &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make (1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make_filled (&amp;quot;&amp;quot;, 1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ubuntu Installation Script =&lt;br /&gt;
{{Note| This script was tested with Xebra revision 81057, EiffelStudio 6.5.8.945 and Ubuntu 9.04 (October 2009)}}&lt;br /&gt;
&lt;br /&gt;
Download this script (the newest revision):&lt;br /&gt;
https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/tools/scripts/linux/install_xebra_ubuntu.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script expects $XEBRA_DEV, $ISE_EIFFEL and $ISE_LIBRARY to be set. Please make sure ''svn'', ''wget'', ''vim'' and ''tar'' are installed. Also, the path to your eiffel studio bin folder should be included in your PATH variable (usually $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin).&lt;br /&gt;
&lt;br /&gt;
The script will checkout xebra to $XEBRA_DEV, compile the server and translator, download, install and configure apache to $XEBRA_DEV/apache. Apache will be configured to listen on port 55000 (instead of 80) in order to not interfere with an already installed http server. After the script was successfully run you need to set $XEBRA_LIBRARY to $XEBRA_DEV/library. &lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
 $XEBRA_DEV/bin/launch_apache.sh&lt;br /&gt;
 $XEBRA_DEV/bin/launch_server.sh&lt;br /&gt;
and then browse to&lt;br /&gt;
 http://localhost:55000/helloworld&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a while to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Windows Installer =&lt;br /&gt;
{{Note| This installer was tested with Xebra revision 80545, EiffelStudio 6.5.8.294, on Windows XP SP2}}&lt;br /&gt;
&lt;br /&gt;
Run the installer at:&lt;br /&gt;
&lt;br /&gt;
https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/framework/web/xebra/tools/installer/win/innosetup/output/XebraSetup.exe&lt;br /&gt;
&lt;br /&gt;
To test your installation click &amp;quot;Launch Xebra Full&amp;quot; in the &amp;quot;Eiffel Xebra&amp;quot; folder in your start menu. This will launch apache and the xebra server and it will open &amp;quot;localhost:55000/helloworld&amp;quot; in your browser. &lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a while to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Manual Installation=&lt;br /&gt;
This guide expects Eiffel Studio to be installed to $ISE_EIFFEL and the source to be checked out to $EIFFEL_SRC (only the folder 'framework' is needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Checkout Xebra==&lt;br /&gt;
* Define $XEBRA_DEV and checkout xebra from https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/ to $XEBRA_DEV&lt;br /&gt;
* Define $XEBRA_LIBRARY to $XEBRA_DEV/eiffel_projects/library&lt;br /&gt;
&lt;br /&gt;
==Install HTTP Server==&lt;br /&gt;
=== Ubuntu 9.04 with Apache 2.2.11 ===&lt;br /&gt;
Note:&lt;br /&gt;
* Mod_xebra does currently not run with the apache distribution that comes with ubuntu. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache unix source from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Extract&lt;br /&gt;
* Define $APACHE2 where you want to install apache, e.g. to $XEBRA_DEV/apache&lt;br /&gt;
* Run the following commands in the extracted folder:&lt;br /&gt;
 CFLAGS=&amp;quot;-ggdb&amp;quot;&lt;br /&gt;
 ./configure --prefix=$APACHE2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 $APACHE2/bin/apxs -c mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 $APACHE2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Add the following lines to $APACHE2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''/tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart apache&lt;br /&gt;
 $APACHE2/bin/apachectl restart&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tail -f $APACHE2/logs/error_log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Windows with Apache 2.2.11===&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
* If mod_xebra.so was compiled with VS2008, it has a delay-load dependency on the Visual C++ 9.0 debug runtime library, msvcr90d.dll.  This dll comes with Visual Studio 2008 C++ including the free Visual Studio 2008 C++ Express edition.  This file can be copied in to the System32 directory.  If this DLL is not found you will get an Apache error '''Cannot load C:/Xebra/httpd/modules/mod_xebra.so into server: This application has failed to start because the application configuration is incorrect.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache windows binary from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Install (Choose Custom Installation and install Build Headers and Libraries as well)&lt;br /&gt;
* Copy $XEBRA_DEV/c_projects/apache_mod_xebra/mod_xebra.so to your Apache2.2\modules folder.&lt;br /&gt;
**Note: If you use a newer version of apache than 2.2.11 please compile mod_xebra yourself to avoid any possible errors, see [[Xebra Apache Module Windows]].&lt;br /&gt;
* Add the following lines to Apache2.2\conf\httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;c:\tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''c:\tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart Apache&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see the a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
&lt;br /&gt;
===Windows with IIS7===&lt;br /&gt;
&lt;br /&gt;
* Open %XEBRA_DEV%\c_projects\iis_xebra_handler\XebraEventSourceInstaller\XebraEventSourceInstaller.sln in VS2008&lt;br /&gt;
* Compile and run (This will install the ''XebraHandler'' source to the Windows Event Log. This cannot be performed by the handler because it lacks permissions.)&lt;br /&gt;
* (Optional) Open %XEBRA_DEV%\c_projects\iis_xebra_handler\Xebra.sln in VS2008 and compile&lt;br /&gt;
* Create a new site in IIS and point it to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\web.config to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\bin to %XEBRA_DEV%\www&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X with Apache ===&lt;br /&gt;
Note:&lt;br /&gt;
* If you're using the version of EiffelStudio from MacPorts, environment variables must be set within the startup script.  /Applications/MacPorts/Eiffel64/EiffelStudio/Contents/Resources/EiffelLauncher&lt;br /&gt;
* Save yourself a ton of hassle and just sudo chmod -R 777 * both the $ISE_EIFFEL and $EIFFEL_SRC directories.&lt;br /&gt;
&lt;br /&gt;
* Get Apache V2 from Mac Ports&lt;br /&gt;
  sudo port install apache2&lt;br /&gt;
* Copy $XEBRA_DEV/www/* to /opt/local/apache2/htdocs&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -c -Wc,-ggdb -I$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Prepare to edit the protected httpd.conf file by running the command:&lt;br /&gt;
  sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit&lt;br /&gt;
  Within TextEdit, which now is running under sudo, open /opt/local/apache2/conf/httpd.conf&lt;br /&gt;
* Add the following lines to /opt/local/apache2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory /tmp or choose another temp upload directory.&lt;br /&gt;
* The default MacPorts apache install will listen on port 80&lt;br /&gt;
* Restart apache &lt;br /&gt;
 sudo /opt/local/apache2/bin/apachectl restart&lt;br /&gt;
* Browse to http://localhost/test.xeb. You should see a message saying &amp;quot;Cannot connect to XebraServer. See apache error log.&amp;quot;&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
 tail -f $APACHE2/logs/error_log&lt;br /&gt;
&lt;br /&gt;
==Compile the Translator and Server ==&lt;br /&gt;
* First we need to compile the xebra precompile library:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/library/xebra_precompile/xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path $XEBRA_DEV/eiffel_projects/library/xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\library\xebra_precompile\xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path %XEBRA_DEV%\eiffel_projects\library\xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Then run:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_translator/xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_translator\xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_server\xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test the installation==&lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
&lt;br /&gt;
'''Windows'''&lt;br /&gt;
 %XEBRA_DEV%\apache\bin\httpd.exe&lt;br /&gt;
 %XEBRA_DEV%\eiffel_projects\xebra_server\EIFGENs\xebra_server\F_code\xebra_server.exe %XEBRA_DEV%\eiffel_projects\xebra_server\config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
 $XEBRA_DEV/apache/bin/httpd&lt;br /&gt;
 $XEBRA_DEV/eiffel_projects/xebra_server/EIFGENs/xebra_server/F_code/xebra_server $XEBRA_DEV/eiffel_projects/xebra_server/config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
and then open&lt;br /&gt;
 http://localhost/helloworld&lt;br /&gt;
in your web browser.&lt;br /&gt;
&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a minute to do so the first time. While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13496</id>
		<title>Xebra Installation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13496"/>
				<updated>2009-10-08T09:01:13Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Ubuntu Installation Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installations=&lt;br /&gt;
===There are two ways to install Xebra:===&lt;br /&gt;
*Automatic&lt;br /&gt;
** A script for Ubuntu 9.04 that sets up xebra and also installs apache&lt;br /&gt;
** A Windows Installer that contains xebra and apache and sets it up&lt;br /&gt;
*Manual (Step-by-step guide)&lt;br /&gt;
** Ubuntu 9.04 with Apache&lt;br /&gt;
** Windows with Apache&lt;br /&gt;
** Windows with IIS7&lt;br /&gt;
&lt;br /&gt;
===A few notes===&lt;br /&gt;
*All of xebra is compiled with the -experiment option. We haven't tested to compile anything in non-experimental mode.&lt;br /&gt;
*Currently (rev 80407), for all types of installation you have to adapt a files in ISE_LIBRARY to make it work since there is a bug in the eiffel argument parser library: In the class ''ISE_EIFFEL/experimental/library/argument_parser/parsers/argument_base_parser.e'' in the feature ''arguments: ARRAY [STRING]'' replace the line &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make (1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make_filled (&amp;quot;&amp;quot;, 1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ubuntu Installation Script =&lt;br /&gt;
{{Note| This script was tested with Xebra revision 81056, EiffelStudio 6.5.8.945 and Ubuntu 9.04 (October 2009)}}&lt;br /&gt;
&lt;br /&gt;
Download this script (the newest revision):&lt;br /&gt;
https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/tools/scripts/linux/install_xebra_ubuntu.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script expects $XEBRA_DEV, $ISE_EIFFEL and $ISE_LIBRARY to be set. Please make sure ''svn'', ''wget'', ''vim'' and ''tar'' are installed. Also, the path to your eiffel studio bin folder should be included in your PATH variable (usually $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin).&lt;br /&gt;
&lt;br /&gt;
The script will checkout xebra to $XEBRA_DEV, compile the server and translator, download, install and configure apache to $XEBRA_DEV/apache. Apache will be configured to listen on port 55000 (instead of 80) in order to not interfere with an already installed http server. After the script was successfully run you need to set $XEBRA_LIBRARY to $XEBRA_DEV/library. &lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
 $XEBRA_DEV/bin/launch_apache.sh&lt;br /&gt;
 $XEBRA_DEV/bin/launch_server.sh&lt;br /&gt;
and then browse to&lt;br /&gt;
 http://localhost:55000/helloworld&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a while to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Windows Installer =&lt;br /&gt;
{{Note| This installer was tested with Xebra revision 80545, EiffelStudio 6.5.8.294, on Windows XP SP2}}&lt;br /&gt;
&lt;br /&gt;
Run the installer at:&lt;br /&gt;
&lt;br /&gt;
https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/framework/web/xebra/tools/installer/win/innosetup/output/XebraSetup.exe&lt;br /&gt;
&lt;br /&gt;
To test your installation click &amp;quot;Launch Xebra Full&amp;quot; in the &amp;quot;Eiffel Xebra&amp;quot; folder in your start menu. This will launch apache and the xebra server and it will open &amp;quot;localhost:55000/helloworld&amp;quot; in your browser. &lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a while to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Manual Installation=&lt;br /&gt;
This guide expects Eiffel Studio to be installed to $ISE_EIFFEL and the source to be checked out to $EIFFEL_SRC (only the folder 'framework' is needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Checkout Xebra==&lt;br /&gt;
* Define $XEBRA_DEV and checkout xebra from https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/ to $XEBRA_DEV&lt;br /&gt;
* Define $XEBRA_LIBRARY to $XEBRA_DEV/eiffel_projects/library&lt;br /&gt;
&lt;br /&gt;
==Install HTTP Server==&lt;br /&gt;
=== Ubuntu 9.04 with Apache 2.2.11 ===&lt;br /&gt;
Note:&lt;br /&gt;
* Mod_xebra does currently not run with the apache distribution that comes with ubuntu. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache unix source from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Extract&lt;br /&gt;
* Define $APACHE2 where you want to install apache, e.g. to $XEBRA_DEV/apache&lt;br /&gt;
* Run the following commands in the extracted folder:&lt;br /&gt;
 CFLAGS=&amp;quot;-ggdb&amp;quot;&lt;br /&gt;
 ./configure --prefix=$APACHE2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 $APACHE2/bin/apxs -c mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 $APACHE2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Add the following lines to $APACHE2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''/tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart apache&lt;br /&gt;
 $APACHE2/bin/apachectl restart&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tail -f $APACHE2/logs/error_log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Windows with Apache 2.2.11===&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
* If mod_xebra.so was compiled with VS2008, it has a delay-load dependency on the Visual C++ 9.0 debug runtime library, msvcr90d.dll.  This dll comes with Visual Studio 2008 C++ including the free Visual Studio 2008 C++ Express edition.  This file can be copied in to the System32 directory.  If this DLL is not found you will get an Apache error '''Cannot load C:/Xebra/httpd/modules/mod_xebra.so into server: This application has failed to start because the application configuration is incorrect.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache windows binary from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Install (Choose Custom Installation and install Build Headers and Libraries as well)&lt;br /&gt;
* Copy $XEBRA_DEV/c_projects/apache_mod_xebra/mod_xebra.so to your Apache2.2\modules folder.&lt;br /&gt;
**Note: If you use a newer version of apache than 2.2.11 please compile mod_xebra yourself to avoid any possible errors, see [[Xebra Apache Module Windows]].&lt;br /&gt;
* Add the following lines to Apache2.2\conf\httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;c:\tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''c:\tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart Apache&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see the a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
&lt;br /&gt;
===Windows with IIS7===&lt;br /&gt;
&lt;br /&gt;
* Open %XEBRA_DEV%\c_projects\iis_xebra_handler\XebraEventSourceInstaller\XebraEventSourceInstaller.sln in VS2008&lt;br /&gt;
* Compile and run (This will install the ''XebraHandler'' source to the Windows Event Log. This cannot be performed by the handler because it lacks permissions.)&lt;br /&gt;
* (Optional) Open %XEBRA_DEV%\c_projects\iis_xebra_handler\Xebra.sln in VS2008 and compile&lt;br /&gt;
* Create a new site in IIS and point it to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\web.config to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\bin to %XEBRA_DEV%\www&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X with Apache ===&lt;br /&gt;
Note:&lt;br /&gt;
* If you're using the version of EiffelStudio from MacPorts, environment variables must be set within the startup script.  /Applications/MacPorts/Eiffel64/EiffelStudio/Contents/Resources/EiffelLauncher&lt;br /&gt;
* Save yourself a ton of hassle and just sudo chmod -R 777 * both the $ISE_EIFFEL and $EIFFEL_SRC directories.&lt;br /&gt;
&lt;br /&gt;
* Get Apache V2 from Mac Ports&lt;br /&gt;
  sudo port install apache2&lt;br /&gt;
* Copy $XEBRA_DEV/www/* to /opt/local/apache2/htdocs&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -c -Wc,-ggdb -I$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Prepare to edit the protected httpd.conf file by running the command:&lt;br /&gt;
  sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit&lt;br /&gt;
  Within TextEdit, which now is running under sudo, open /opt/local/apache2/conf/httpd.conf&lt;br /&gt;
* Add the following lines to /opt/local/apache2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory /tmp or choose another temp upload directory.&lt;br /&gt;
* The default MacPorts apache install will listen on port 80&lt;br /&gt;
* Restart apache &lt;br /&gt;
 sudo /opt/local/apache2/bin/apachectl restart&lt;br /&gt;
* Browse to http://localhost/test.xeb. You should see a message saying &amp;quot;Cannot connect to XebraServer. See apache error log.&amp;quot;&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
 tail -f $APACHE2/logs/error_log&lt;br /&gt;
&lt;br /&gt;
==Compile the Translator and Server ==&lt;br /&gt;
* First we need to compile the xebra precompile library:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/library/xebra_precompile/xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path $XEBRA_DEV/eiffel_projects/library/xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\library\xebra_precompile\xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path %XEBRA_DEV%\eiffel_projects\library\xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Then run:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_translator/xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_translator\xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_server\xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test the installation==&lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
&lt;br /&gt;
'''Windows'''&lt;br /&gt;
 %XEBRA_DEV%\apache\bin\httpd.exe&lt;br /&gt;
 %XEBRA_DEV%\eiffel_projects\xebra_server\EIFGENs\xebra_server\F_code\xebra_server.exe %XEBRA_DEV%\eiffel_projects\xebra_server\config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
 $XEBRA_DEV/apache/bin/httpd&lt;br /&gt;
 $XEBRA_DEV/eiffel_projects/xebra_server/EIFGENs/xebra_server/F_code/xebra_server $XEBRA_DEV/eiffel_projects/xebra_server/config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
and then open&lt;br /&gt;
 http://localhost/helloworld&lt;br /&gt;
in your web browser.&lt;br /&gt;
&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a minute to do so the first time. While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13445</id>
		<title>Xebra Installation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13445"/>
				<updated>2009-09-01T19:32:38Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Ubuntu Installation Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installations=&lt;br /&gt;
===There are two ways to install Xebra:===&lt;br /&gt;
*Automatic&lt;br /&gt;
** A script for Ubuntu 9.04 that sets up xebra and also installs apache&lt;br /&gt;
** A Windows Installer that contains xebra and apache and sets it up&lt;br /&gt;
*Manual (Step-by-step guide)&lt;br /&gt;
** Ubuntu 9.04 with Apache&lt;br /&gt;
** Windows with Apache&lt;br /&gt;
** Windows with IIS7&lt;br /&gt;
&lt;br /&gt;
===A few notes===&lt;br /&gt;
*All of xebra is compiled with the -experiment option. We haven't tested to compile anything in non-experimental mode.&lt;br /&gt;
*Currently (rev 80407), for all types of installation you have to adapt a files in ISE_LIBRARY to make it work since there is a bug in the eiffel argument parser library: In the class ''ISE_EIFFEL/experimental/library/argument_parser/parsers/argument_base_parser.e'' in the feature ''arguments: ARRAY [STRING]'' replace the line &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make (1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make_filled (&amp;quot;&amp;quot;, 1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ubuntu Installation Script =&lt;br /&gt;
{{Note| This script was tested with Xebra revision 80570, EiffelStudio 6.5.8.294 and Ubuntu 9.04 (August 2009)}}&lt;br /&gt;
&lt;br /&gt;
Run this script (the current revision):&lt;br /&gt;
https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/tools/scripts/linux/install_xebra_ubuntu.sh&lt;br /&gt;
&lt;br /&gt;
The script expects $XEBRA_DEV, $ISE_EIFFEL and $ISE_LIBRARY to be set. Please make sure ''svn'', ''wget'', ''vim'' and ''tar'' are installed. Also, the path to your eiffel studio bin folder should be included in your PATH variable.&lt;br /&gt;
&lt;br /&gt;
The script will checkout xebra to $XEBRA_DEV, compile the server and translator, download, install and configure apache to $XEBRA_DEV/apache. Apache will be configured to listen on port 55000 (instead of 80) in order to not interfere with an already installed http server. After the script was successfully run you need to set $XEBRA_LIBRARY to $XEBRA_DEV/library. &lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
 $XEBRA_DEV/bin/launch_apache.sh&lt;br /&gt;
 $XEBRA_DEV/bin/launch_server.sh&lt;br /&gt;
and then browse to&lt;br /&gt;
 http://localhost:55000/helloworld&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a while to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Windows Installer =&lt;br /&gt;
{{Note| This installer was tested with Xebra revision 80545, EiffelStudio 6.5.8.294, on Windows XP SP2}}&lt;br /&gt;
&lt;br /&gt;
Run the installer at:&lt;br /&gt;
&lt;br /&gt;
https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/framework/web/xebra/tools/installer/win/innosetup/output/XebraSetup.exe&lt;br /&gt;
&lt;br /&gt;
To test your installation click &amp;quot;Launch Xebra Full&amp;quot; in the &amp;quot;Eiffel Xebra&amp;quot; folder in your start menu. This will launch apache and the xebra server and it will open &amp;quot;localhost:55000/helloworld&amp;quot; in your browser. &lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a while to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Manual Installation=&lt;br /&gt;
This guide expects Eiffel Studio to be installed to $ISE_EIFFEL and the source to be checked out to $EIFFEL_SRC (only the folder 'framework' is needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Checkout Xebra==&lt;br /&gt;
* Define $XEBRA_DEV and checkout xebra from https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/ to $XEBRA_DEV&lt;br /&gt;
* Define $XEBRA_LIBRARY to $XEBRA_DEV/eiffel_projects/library&lt;br /&gt;
&lt;br /&gt;
==Install HTTP Server==&lt;br /&gt;
=== Ubuntu 9.04 with Apache 2.2.11 ===&lt;br /&gt;
Note:&lt;br /&gt;
* Mod_xebra does currently not run with the apache distribution that comes with ubuntu. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache unix source from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Extract&lt;br /&gt;
* Define $APACHE2 where you want to install apache, e.g. to $XEBRA_DEV/apache&lt;br /&gt;
* Run the following commands in the extracted folder:&lt;br /&gt;
 CFLAGS=&amp;quot;-ggdb&amp;quot;&lt;br /&gt;
 ./configure --prefix=$APACHE2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 $APACHE2/bin/apxs -c mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 $APACHE2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Add the following lines to $APACHE2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''/tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart apache&lt;br /&gt;
 $APACHE2/bin/apachectl restart&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tail -f $APACHE2/logs/error_log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Windows with Apache 2.2.11===&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
* If mod_xebra.so was compiled with VS2008, it has a delay-load dependency on the Visual C++ 9.0 debug runtime library, msvcr90d.dll.  This dll comes with Visual Studio 2008 C++ including the free Visual Studio 2008 C++ Express edition.  This file can be copied in to the System32 directory.  If this DLL is not found you will get an Apache error '''Cannot load C:/Xebra/httpd/modules/mod_xebra.so into server: This application has failed to start because the application configuration is incorrect.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache windows binary from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Install (Choose Custom Installation and install Build Headers and Libraries as well)&lt;br /&gt;
* Copy $XEBRA_DEV/c_projects/apache_mod_xebra/mod_xebra.so to your Apache2.2\modules folder.&lt;br /&gt;
**Note: If you use a newer version of apache than 2.2.11 please compile mod_xebra yourself to avoid any possible errors, see [[Xebra Apache Module Windows]].&lt;br /&gt;
* Add the following lines to Apache2.2\conf\httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;c:\tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''c:\tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart Apache&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see the a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
&lt;br /&gt;
===Windows with IIS7===&lt;br /&gt;
&lt;br /&gt;
* Open %XEBRA_DEV%\c_projects\iis_xebra_handler\XebraEventSourceInstaller\XebraEventSourceInstaller.sln in VS2008&lt;br /&gt;
* Compile and run (This will install the ''XebraHandler'' source to the Windows Event Log. This cannot be performed by the handler because it lacks permissions.)&lt;br /&gt;
* (Optional) Open %XEBRA_DEV%\c_projects\iis_xebra_handler\Xebra.sln in VS2008 and compile&lt;br /&gt;
* Create a new site in IIS and point it to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\web.config to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\bin to %XEBRA_DEV%\www&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X with Apache ===&lt;br /&gt;
Note:&lt;br /&gt;
* If you're using the version of EiffelStudio from MacPorts, environment variables must be set within the startup script.  /Applications/MacPorts/Eiffel64/EiffelStudio/Contents/Resources/EiffelLauncher&lt;br /&gt;
* Save yourself a ton of hassle and just sudo chmod -R 777 * both the $ISE_EIFFEL and $EIFFEL_SRC directories.&lt;br /&gt;
&lt;br /&gt;
* Get Apache V2 from Mac Ports&lt;br /&gt;
  sudo port install apache2&lt;br /&gt;
* Copy $XEBRA_DEV/www/* to /opt/local/apache2/htdocs&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -c -Wc,-ggdb -I$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Prepare to edit the protected httpd.conf file by running the command:&lt;br /&gt;
  sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit&lt;br /&gt;
  Within TextEdit, which now is running under sudo, open /opt/local/apache2/conf/httpd.conf&lt;br /&gt;
* Add the following lines to /opt/local/apache2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory /tmp or choose another temp upload directory.&lt;br /&gt;
* The default MacPorts apache install will listen on port 80&lt;br /&gt;
* Restart apache &lt;br /&gt;
 sudo /opt/local/apache2/bin/apachectl restart&lt;br /&gt;
* Browse to http://localhost/test.xeb. You should see a message saying &amp;quot;Cannot connect to XebraServer. See apache error log.&amp;quot;&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
 tail -f $APACHE2/logs/error_log&lt;br /&gt;
&lt;br /&gt;
==Compile the Translator and Server ==&lt;br /&gt;
* First we need to compile the xebra precompile library:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/library/xebra_precompile/xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path $XEBRA_DEV/eiffel_projects/library/xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\library\xebra_precompile\xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path %XEBRA_DEV%\eiffel_projects\library\xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Then run:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_translator/xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_translator\xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_server\xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test the installation==&lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
&lt;br /&gt;
'''Windows'''&lt;br /&gt;
 %XEBRA_DEV%\apache\bin\httpd.exe&lt;br /&gt;
 %XEBRA_DEV%\eiffel_projects\xebra_server\EIFGENs\xebra_server\F_code\xebra_server.exe %XEBRA_DEV%\eiffel_projects\xebra_server\config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
 $XEBRA_DEV/apache/bin/httpd&lt;br /&gt;
 $XEBRA_DEV/eiffel_projects/xebra_server/EIFGENs/xebra_server/F_code/xebra_server $XEBRA_DEV/eiffel_projects/xebra_server/config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
and then open&lt;br /&gt;
 http://localhost/helloworld&lt;br /&gt;
in your web browser.&lt;br /&gt;
&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a minute to do so the first time. While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13444</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13444"/>
				<updated>2009-09-01T19:20:09Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*IIS 7.5.7100&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
*Tomcat 6.0 with Apache-Coyote/1.1&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapp are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp on Apache&lt;br /&gt;
! Xebra Webapp on IIS&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.243 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    108.19 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          114.84 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:     7    9   4.0      8      63&lt;br /&gt;
Waiting:        7    9   4.0      8      63&lt;br /&gt;
Total:          7    9   4.0      8      63&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      8&lt;br /&gt;
  66%      9&lt;br /&gt;
  75%      9&lt;br /&gt;
  80%      9&lt;br /&gt;
  90%     10&lt;br /&gt;
  95%     13&lt;br /&gt;
  98%     16&lt;br /&gt;
  99%     31&lt;br /&gt;
 100%     63 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /examples/jsp/jsp2/simpletag/hello.jsp&lt;br /&gt;
Document Length:        334 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   1.247 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      555000 bytes&lt;br /&gt;
HTML transferred:       334000 bytes&lt;br /&gt;
Requests per second:    801.88 [#/sec] (mean)&lt;br /&gt;
Time per request:       1.247 [ms] (mean)&lt;br /&gt;
Time per request:       1.247 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          434.61 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:     0    1   0.3      1       4&lt;br /&gt;
Waiting:        0    1   0.4      1       4&lt;br /&gt;
Total:          1    1   0.4      1       5&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      2&lt;br /&gt;
  95%      2&lt;br /&gt;
  98%      2&lt;br /&gt;
  99%      2&lt;br /&gt;
 100%      5 (longest request)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   0.893 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1120.35 [#/sec] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          649.89 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     0    1   0.6      1      11&lt;br /&gt;
Waiting:        0    1   0.6      1      11&lt;br /&gt;
Total:          0    1   0.5      1      11&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      1&lt;br /&gt;
  95%      1&lt;br /&gt;
  98%      1&lt;br /&gt;
  99%      1&lt;br /&gt;
 100%     11 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   8.527 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    117.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       85.273 [ms] (mean)&lt;br /&gt;
Time per request:       8.527 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          82.00 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:    31   84  10.5     87     107&lt;br /&gt;
Waiting:       31   84  10.5     87     107&lt;br /&gt;
Total:         31   85  10.5     87     107&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     87&lt;br /&gt;
  66%     90&lt;br /&gt;
  75%     93&lt;br /&gt;
  80%     95&lt;br /&gt;
  90%     98&lt;br /&gt;
  95%    101&lt;br /&gt;
  98%    103&lt;br /&gt;
  99%    104&lt;br /&gt;
 100%    107 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   5.491 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    182.11 [#/sec] (mean)&lt;br /&gt;
Time per request:       54.912 [ms] (mean)&lt;br /&gt;
Time per request:       5.491 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          193.31 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   1.8      0      27&lt;br /&gt;
Processing:    10   54  20.2     49     169&lt;br /&gt;
Waiting:        9   53  20.2     49     169&lt;br /&gt;
Total:         11   54  20.2     50     169&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     50&lt;br /&gt;
  66%     57&lt;br /&gt;
  75%     63&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     81&lt;br /&gt;
  95%     96&lt;br /&gt;
  98%    111&lt;br /&gt;
  99%    124&lt;br /&gt;
 100%    169 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /examples/jsp/jsp2/simpletag/hello.jsp&lt;br /&gt;
Document Length:        334 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.828 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      555000 bytes&lt;br /&gt;
HTML transferred:       334000 bytes&lt;br /&gt;
Requests per second:    1207.55 [#/sec] (mean)&lt;br /&gt;
Time per request:       8.281 [ms] (mean)&lt;br /&gt;
Time per request:       0.828 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          654.48 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.5      0       2&lt;br /&gt;
Processing:     1    8   1.6      8      19&lt;br /&gt;
Waiting:        0    5   2.4      5      19&lt;br /&gt;
Total:          2    8   1.6      8      19&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      8&lt;br /&gt;
  66%      8&lt;br /&gt;
  75%      9&lt;br /&gt;
  80%      9&lt;br /&gt;
  90%     10&lt;br /&gt;
  95%     12&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     15&lt;br /&gt;
 100%     19 (longest request)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.559 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1790.21 [#/sec] (mean)&lt;br /&gt;
Time per request:       5.586 [ms] (mean)&lt;br /&gt;
Time per request:       0.559 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          1038.46 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:     1    5   2.9      5      87&lt;br /&gt;
Waiting:        1    5   2.9      5      87&lt;br /&gt;
Total:          2    5   2.9      5      87&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      5&lt;br /&gt;
  66%      6&lt;br /&gt;
  75%      6&lt;br /&gt;
  80%      6&lt;br /&gt;
  90%      6&lt;br /&gt;
  95%      7&lt;br /&gt;
  98%      9&lt;br /&gt;
  99%     11&lt;br /&gt;
 100%     87 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   8.970 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    111.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       896.973 [ms] (mean)&lt;br /&gt;
Time per request:       8.970 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          77.95 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:    54  846 175.6    912    1018&lt;br /&gt;
Waiting:       54  846 175.6    912    1018&lt;br /&gt;
Total:         54  846 175.6    912    1018&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    912&lt;br /&gt;
  66%    929&lt;br /&gt;
  75%    940&lt;br /&gt;
  80%    972&lt;br /&gt;
  90%    994&lt;br /&gt;
  95%   1002&lt;br /&gt;
  98%   1014&lt;br /&gt;
  99%   1016&lt;br /&gt;
 100%   1018 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   5.517 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    181.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       551.660 [ms] (mean)&lt;br /&gt;
Time per request:       5.517 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          192.42 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   2.0      0      23&lt;br /&gt;
Processing:    19  526  97.3    544     672&lt;br /&gt;
Waiting:       19  525  97.2    544     672&lt;br /&gt;
Total:         19  527  97.6    546     672&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    546&lt;br /&gt;
  66%    559&lt;br /&gt;
  75%    567&lt;br /&gt;
  80%    574&lt;br /&gt;
  90%    594&lt;br /&gt;
  95%    613&lt;br /&gt;
  98%    628&lt;br /&gt;
  99%    644&lt;br /&gt;
 100%    672 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /examples/jsp/jsp2/simpletag/hello.jsp&lt;br /&gt;
Document Length:        334 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   1.068 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      555000 bytes&lt;br /&gt;
HTML transferred:       334000 bytes&lt;br /&gt;
Requests per second:    936.01 [#/sec] (mean)&lt;br /&gt;
Time per request:       106.836 [ms] (mean)&lt;br /&gt;
Time per request:       1.068 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          507.31 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.8      0      15&lt;br /&gt;
Processing:     5  101  89.4     81     404&lt;br /&gt;
Waiting:        2   72  90.6     45     393&lt;br /&gt;
Total:          5  101  89.3     81     404&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     81&lt;br /&gt;
  66%     83&lt;br /&gt;
  75%     84&lt;br /&gt;
  80%     85&lt;br /&gt;
  90%    331&lt;br /&gt;
  95%    356&lt;br /&gt;
  98%    384&lt;br /&gt;
  99%    400&lt;br /&gt;
 100%    404 (longest request)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   0.647 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1544.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       64.746 [ms] (mean)&lt;br /&gt;
Time per request:       0.647 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          895.93 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       3&lt;br /&gt;
Processing:    21   61  10.1     63      84&lt;br /&gt;
Waiting:       20   61  10.1     63      84&lt;br /&gt;
Total:         21   61  10.1     63      84&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     63&lt;br /&gt;
  66%     63&lt;br /&gt;
  75%     65&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     71&lt;br /&gt;
  95%     75&lt;br /&gt;
  98%     78&lt;br /&gt;
  99%     79&lt;br /&gt;
 100%     84 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13443</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13443"/>
				<updated>2009-09-01T19:14:34Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*IIS 7.5.7100&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
*Tomcat 6.0 with Apache-Coyote/1.1&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp on Apache&lt;br /&gt;
! Xebra Webapp on IIS&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.243 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    108.19 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          114.84 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:     7    9   4.0      8      63&lt;br /&gt;
Waiting:        7    9   4.0      8      63&lt;br /&gt;
Total:          7    9   4.0      8      63&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      8&lt;br /&gt;
  66%      9&lt;br /&gt;
  75%      9&lt;br /&gt;
  80%      9&lt;br /&gt;
  90%     10&lt;br /&gt;
  95%     13&lt;br /&gt;
  98%     16&lt;br /&gt;
  99%     31&lt;br /&gt;
 100%     63 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /examples/jsp/jsp2/simpletag/hello.jsp&lt;br /&gt;
Document Length:        334 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   1.247 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      555000 bytes&lt;br /&gt;
HTML transferred:       334000 bytes&lt;br /&gt;
Requests per second:    801.88 [#/sec] (mean)&lt;br /&gt;
Time per request:       1.247 [ms] (mean)&lt;br /&gt;
Time per request:       1.247 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          434.61 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:     0    1   0.3      1       4&lt;br /&gt;
Waiting:        0    1   0.4      1       4&lt;br /&gt;
Total:          1    1   0.4      1       5&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      2&lt;br /&gt;
  95%      2&lt;br /&gt;
  98%      2&lt;br /&gt;
  99%      2&lt;br /&gt;
 100%      5 (longest request)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   0.893 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1120.35 [#/sec] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          649.89 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     0    1   0.6      1      11&lt;br /&gt;
Waiting:        0    1   0.6      1      11&lt;br /&gt;
Total:          0    1   0.5      1      11&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      1&lt;br /&gt;
  95%      1&lt;br /&gt;
  98%      1&lt;br /&gt;
  99%      1&lt;br /&gt;
 100%     11 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   8.527 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    117.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       85.273 [ms] (mean)&lt;br /&gt;
Time per request:       8.527 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          82.00 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:    31   84  10.5     87     107&lt;br /&gt;
Waiting:       31   84  10.5     87     107&lt;br /&gt;
Total:         31   85  10.5     87     107&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     87&lt;br /&gt;
  66%     90&lt;br /&gt;
  75%     93&lt;br /&gt;
  80%     95&lt;br /&gt;
  90%     98&lt;br /&gt;
  95%    101&lt;br /&gt;
  98%    103&lt;br /&gt;
  99%    104&lt;br /&gt;
 100%    107 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   5.491 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    182.11 [#/sec] (mean)&lt;br /&gt;
Time per request:       54.912 [ms] (mean)&lt;br /&gt;
Time per request:       5.491 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          193.31 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   1.8      0      27&lt;br /&gt;
Processing:    10   54  20.2     49     169&lt;br /&gt;
Waiting:        9   53  20.2     49     169&lt;br /&gt;
Total:         11   54  20.2     50     169&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     50&lt;br /&gt;
  66%     57&lt;br /&gt;
  75%     63&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     81&lt;br /&gt;
  95%     96&lt;br /&gt;
  98%    111&lt;br /&gt;
  99%    124&lt;br /&gt;
 100%    169 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /examples/jsp/jsp2/simpletag/hello.jsp&lt;br /&gt;
Document Length:        334 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.828 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      555000 bytes&lt;br /&gt;
HTML transferred:       334000 bytes&lt;br /&gt;
Requests per second:    1207.55 [#/sec] (mean)&lt;br /&gt;
Time per request:       8.281 [ms] (mean)&lt;br /&gt;
Time per request:       0.828 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          654.48 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.5      0       2&lt;br /&gt;
Processing:     1    8   1.6      8      19&lt;br /&gt;
Waiting:        0    5   2.4      5      19&lt;br /&gt;
Total:          2    8   1.6      8      19&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      8&lt;br /&gt;
  66%      8&lt;br /&gt;
  75%      9&lt;br /&gt;
  80%      9&lt;br /&gt;
  90%     10&lt;br /&gt;
  95%     12&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     15&lt;br /&gt;
 100%     19 (longest request)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.559 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1790.21 [#/sec] (mean)&lt;br /&gt;
Time per request:       5.586 [ms] (mean)&lt;br /&gt;
Time per request:       0.559 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          1038.46 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:     1    5   2.9      5      87&lt;br /&gt;
Waiting:        1    5   2.9      5      87&lt;br /&gt;
Total:          2    5   2.9      5      87&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      5&lt;br /&gt;
  66%      6&lt;br /&gt;
  75%      6&lt;br /&gt;
  80%      6&lt;br /&gt;
  90%      6&lt;br /&gt;
  95%      7&lt;br /&gt;
  98%      9&lt;br /&gt;
  99%     11&lt;br /&gt;
 100%     87 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   8.970 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    111.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       896.973 [ms] (mean)&lt;br /&gt;
Time per request:       8.970 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          77.95 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:    54  846 175.6    912    1018&lt;br /&gt;
Waiting:       54  846 175.6    912    1018&lt;br /&gt;
Total:         54  846 175.6    912    1018&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    912&lt;br /&gt;
  66%    929&lt;br /&gt;
  75%    940&lt;br /&gt;
  80%    972&lt;br /&gt;
  90%    994&lt;br /&gt;
  95%   1002&lt;br /&gt;
  98%   1014&lt;br /&gt;
  99%   1016&lt;br /&gt;
 100%   1018 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   5.517 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    181.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       551.660 [ms] (mean)&lt;br /&gt;
Time per request:       5.517 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          192.42 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   2.0      0      23&lt;br /&gt;
Processing:    19  526  97.3    544     672&lt;br /&gt;
Waiting:       19  525  97.2    544     672&lt;br /&gt;
Total:         19  527  97.6    546     672&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    546&lt;br /&gt;
  66%    559&lt;br /&gt;
  75%    567&lt;br /&gt;
  80%    574&lt;br /&gt;
  90%    594&lt;br /&gt;
  95%    613&lt;br /&gt;
  98%    628&lt;br /&gt;
  99%    644&lt;br /&gt;
 100%    672 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /examples/jsp/jsp2/simpletag/hello.jsp&lt;br /&gt;
Document Length:        334 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   1.068 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      555000 bytes&lt;br /&gt;
HTML transferred:       334000 bytes&lt;br /&gt;
Requests per second:    936.01 [#/sec] (mean)&lt;br /&gt;
Time per request:       106.836 [ms] (mean)&lt;br /&gt;
Time per request:       1.068 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          507.31 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.8      0      15&lt;br /&gt;
Processing:     5  101  89.4     81     404&lt;br /&gt;
Waiting:        2   72  90.6     45     393&lt;br /&gt;
Total:          5  101  89.3     81     404&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     81&lt;br /&gt;
  66%     83&lt;br /&gt;
  75%     84&lt;br /&gt;
  80%     85&lt;br /&gt;
  90%    331&lt;br /&gt;
  95%    356&lt;br /&gt;
  98%    384&lt;br /&gt;
  99%    400&lt;br /&gt;
 100%    404 (longest request)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   0.647 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1544.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       64.746 [ms] (mean)&lt;br /&gt;
Time per request:       0.647 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          895.93 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       3&lt;br /&gt;
Processing:    21   61  10.1     63      84&lt;br /&gt;
Waiting:       20   61  10.1     63      84&lt;br /&gt;
Total:         21   61  10.1     63      84&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     63&lt;br /&gt;
  66%     63&lt;br /&gt;
  75%     65&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     71&lt;br /&gt;
  95%     75&lt;br /&gt;
  98%     78&lt;br /&gt;
  99%     79&lt;br /&gt;
 100%     84 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13442</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13442"/>
				<updated>2009-09-01T19:13:38Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*IIS 7.5.7100&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
*Tomcat 6.0&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp on Apache&lt;br /&gt;
! Xebra Webapp on IIS&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.243 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    108.19 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          114.84 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:     7    9   4.0      8      63&lt;br /&gt;
Waiting:        7    9   4.0      8      63&lt;br /&gt;
Total:          7    9   4.0      8      63&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      8&lt;br /&gt;
  66%      9&lt;br /&gt;
  75%      9&lt;br /&gt;
  80%      9&lt;br /&gt;
  90%     10&lt;br /&gt;
  95%     13&lt;br /&gt;
  98%     16&lt;br /&gt;
  99%     31&lt;br /&gt;
 100%     63 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /examples/jsp/jsp2/simpletag/hello.jsp&lt;br /&gt;
Document Length:        334 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   1.247 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      555000 bytes&lt;br /&gt;
HTML transferred:       334000 bytes&lt;br /&gt;
Requests per second:    801.88 [#/sec] (mean)&lt;br /&gt;
Time per request:       1.247 [ms] (mean)&lt;br /&gt;
Time per request:       1.247 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          434.61 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:     0    1   0.3      1       4&lt;br /&gt;
Waiting:        0    1   0.4      1       4&lt;br /&gt;
Total:          1    1   0.4      1       5&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      2&lt;br /&gt;
  95%      2&lt;br /&gt;
  98%      2&lt;br /&gt;
  99%      2&lt;br /&gt;
 100%      5 (longest request)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   0.893 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1120.35 [#/sec] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          649.89 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     0    1   0.6      1      11&lt;br /&gt;
Waiting:        0    1   0.6      1      11&lt;br /&gt;
Total:          0    1   0.5      1      11&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      1&lt;br /&gt;
  95%      1&lt;br /&gt;
  98%      1&lt;br /&gt;
  99%      1&lt;br /&gt;
 100%     11 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   8.527 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    117.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       85.273 [ms] (mean)&lt;br /&gt;
Time per request:       8.527 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          82.00 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:    31   84  10.5     87     107&lt;br /&gt;
Waiting:       31   84  10.5     87     107&lt;br /&gt;
Total:         31   85  10.5     87     107&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     87&lt;br /&gt;
  66%     90&lt;br /&gt;
  75%     93&lt;br /&gt;
  80%     95&lt;br /&gt;
  90%     98&lt;br /&gt;
  95%    101&lt;br /&gt;
  98%    103&lt;br /&gt;
  99%    104&lt;br /&gt;
 100%    107 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   5.491 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    182.11 [#/sec] (mean)&lt;br /&gt;
Time per request:       54.912 [ms] (mean)&lt;br /&gt;
Time per request:       5.491 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          193.31 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   1.8      0      27&lt;br /&gt;
Processing:    10   54  20.2     49     169&lt;br /&gt;
Waiting:        9   53  20.2     49     169&lt;br /&gt;
Total:         11   54  20.2     50     169&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     50&lt;br /&gt;
  66%     57&lt;br /&gt;
  75%     63&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     81&lt;br /&gt;
  95%     96&lt;br /&gt;
  98%    111&lt;br /&gt;
  99%    124&lt;br /&gt;
 100%    169 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /examples/jsp/jsp2/simpletag/hello.jsp&lt;br /&gt;
Document Length:        334 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.828 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      555000 bytes&lt;br /&gt;
HTML transferred:       334000 bytes&lt;br /&gt;
Requests per second:    1207.55 [#/sec] (mean)&lt;br /&gt;
Time per request:       8.281 [ms] (mean)&lt;br /&gt;
Time per request:       0.828 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          654.48 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.5      0       2&lt;br /&gt;
Processing:     1    8   1.6      8      19&lt;br /&gt;
Waiting:        0    5   2.4      5      19&lt;br /&gt;
Total:          2    8   1.6      8      19&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      8&lt;br /&gt;
  66%      8&lt;br /&gt;
  75%      9&lt;br /&gt;
  80%      9&lt;br /&gt;
  90%     10&lt;br /&gt;
  95%     12&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     15&lt;br /&gt;
 100%     19 (longest request)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.559 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1790.21 [#/sec] (mean)&lt;br /&gt;
Time per request:       5.586 [ms] (mean)&lt;br /&gt;
Time per request:       0.559 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          1038.46 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:     1    5   2.9      5      87&lt;br /&gt;
Waiting:        1    5   2.9      5      87&lt;br /&gt;
Total:          2    5   2.9      5      87&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      5&lt;br /&gt;
  66%      6&lt;br /&gt;
  75%      6&lt;br /&gt;
  80%      6&lt;br /&gt;
  90%      6&lt;br /&gt;
  95%      7&lt;br /&gt;
  98%      9&lt;br /&gt;
  99%     11&lt;br /&gt;
 100%     87 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   8.970 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    111.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       896.973 [ms] (mean)&lt;br /&gt;
Time per request:       8.970 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          77.95 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:    54  846 175.6    912    1018&lt;br /&gt;
Waiting:       54  846 175.6    912    1018&lt;br /&gt;
Total:         54  846 175.6    912    1018&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    912&lt;br /&gt;
  66%    929&lt;br /&gt;
  75%    940&lt;br /&gt;
  80%    972&lt;br /&gt;
  90%    994&lt;br /&gt;
  95%   1002&lt;br /&gt;
  98%   1014&lt;br /&gt;
  99%   1016&lt;br /&gt;
 100%   1018 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   5.517 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    181.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       551.660 [ms] (mean)&lt;br /&gt;
Time per request:       5.517 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          192.42 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   2.0      0      23&lt;br /&gt;
Processing:    19  526  97.3    544     672&lt;br /&gt;
Waiting:       19  525  97.2    544     672&lt;br /&gt;
Total:         19  527  97.6    546     672&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    546&lt;br /&gt;
  66%    559&lt;br /&gt;
  75%    567&lt;br /&gt;
  80%    574&lt;br /&gt;
  90%    594&lt;br /&gt;
  95%    613&lt;br /&gt;
  98%    628&lt;br /&gt;
  99%    644&lt;br /&gt;
 100%    672 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /examples/jsp/jsp2/simpletag/hello.jsp&lt;br /&gt;
Document Length:        334 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   1.068 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      555000 bytes&lt;br /&gt;
HTML transferred:       334000 bytes&lt;br /&gt;
Requests per second:    936.01 [#/sec] (mean)&lt;br /&gt;
Time per request:       106.836 [ms] (mean)&lt;br /&gt;
Time per request:       1.068 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          507.31 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.8      0      15&lt;br /&gt;
Processing:     5  101  89.4     81     404&lt;br /&gt;
Waiting:        2   72  90.6     45     393&lt;br /&gt;
Total:          5  101  89.3     81     404&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     81&lt;br /&gt;
  66%     83&lt;br /&gt;
  75%     84&lt;br /&gt;
  80%     85&lt;br /&gt;
  90%    331&lt;br /&gt;
  95%    356&lt;br /&gt;
  98%    384&lt;br /&gt;
  99%    400&lt;br /&gt;
 100%    404 (longest request)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   0.647 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1544.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       64.746 [ms] (mean)&lt;br /&gt;
Time per request:       0.647 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          895.93 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       3&lt;br /&gt;
Processing:    21   61  10.1     63      84&lt;br /&gt;
Waiting:       20   61  10.1     63      84&lt;br /&gt;
Total:         21   61  10.1     63      84&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     63&lt;br /&gt;
  66%     63&lt;br /&gt;
  75%     65&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     71&lt;br /&gt;
  95%     75&lt;br /&gt;
  98%     78&lt;br /&gt;
  99%     79&lt;br /&gt;
 100%     84 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13441</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13441"/>
				<updated>2009-09-01T19:10:20Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*IIS 7.5.7100&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
*Tomcat 6.0&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp on Apache&lt;br /&gt;
! Xebra Webapp on IIS&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.243 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    108.19 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          114.84 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:     7    9   4.0      8      63&lt;br /&gt;
Waiting:        7    9   4.0      8      63&lt;br /&gt;
Total:          7    9   4.0      8      63&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      8&lt;br /&gt;
  66%      9&lt;br /&gt;
  75%      9&lt;br /&gt;
  80%      9&lt;br /&gt;
  90%     10&lt;br /&gt;
  95%     13&lt;br /&gt;
  98%     16&lt;br /&gt;
  99%     31&lt;br /&gt;
 100%     63 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tomcat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   0.893 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1120.35 [#/sec] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          649.89 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     0    1   0.6      1      11&lt;br /&gt;
Waiting:        0    1   0.6      1      11&lt;br /&gt;
Total:          0    1   0.5      1      11&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      1&lt;br /&gt;
  95%      1&lt;br /&gt;
  98%      1&lt;br /&gt;
  99%      1&lt;br /&gt;
 100%     11 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   8.527 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    117.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       85.273 [ms] (mean)&lt;br /&gt;
Time per request:       8.527 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          82.00 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:    31   84  10.5     87     107&lt;br /&gt;
Waiting:       31   84  10.5     87     107&lt;br /&gt;
Total:         31   85  10.5     87     107&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     87&lt;br /&gt;
  66%     90&lt;br /&gt;
  75%     93&lt;br /&gt;
  80%     95&lt;br /&gt;
  90%     98&lt;br /&gt;
  95%    101&lt;br /&gt;
  98%    103&lt;br /&gt;
  99%    104&lt;br /&gt;
 100%    107 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   5.491 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    182.11 [#/sec] (mean)&lt;br /&gt;
Time per request:       54.912 [ms] (mean)&lt;br /&gt;
Time per request:       5.491 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          193.31 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   1.8      0      27&lt;br /&gt;
Processing:    10   54  20.2     49     169&lt;br /&gt;
Waiting:        9   53  20.2     49     169&lt;br /&gt;
Total:         11   54  20.2     50     169&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     50&lt;br /&gt;
  66%     57&lt;br /&gt;
  75%     63&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     81&lt;br /&gt;
  95%     96&lt;br /&gt;
  98%    111&lt;br /&gt;
  99%    124&lt;br /&gt;
 100%    169 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tomcat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.559 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1790.21 [#/sec] (mean)&lt;br /&gt;
Time per request:       5.586 [ms] (mean)&lt;br /&gt;
Time per request:       0.559 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          1038.46 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:     1    5   2.9      5      87&lt;br /&gt;
Waiting:        1    5   2.9      5      87&lt;br /&gt;
Total:          2    5   2.9      5      87&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      5&lt;br /&gt;
  66%      6&lt;br /&gt;
  75%      6&lt;br /&gt;
  80%      6&lt;br /&gt;
  90%      6&lt;br /&gt;
  95%      7&lt;br /&gt;
  98%      9&lt;br /&gt;
  99%     11&lt;br /&gt;
 100%     87 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   8.970 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    111.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       896.973 [ms] (mean)&lt;br /&gt;
Time per request:       8.970 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          77.95 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:    54  846 175.6    912    1018&lt;br /&gt;
Waiting:       54  846 175.6    912    1018&lt;br /&gt;
Total:         54  846 175.6    912    1018&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    912&lt;br /&gt;
  66%    929&lt;br /&gt;
  75%    940&lt;br /&gt;
  80%    972&lt;br /&gt;
  90%    994&lt;br /&gt;
  95%   1002&lt;br /&gt;
  98%   1014&lt;br /&gt;
  99%   1016&lt;br /&gt;
 100%   1018 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   5.517 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    181.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       551.660 [ms] (mean)&lt;br /&gt;
Time per request:       5.517 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          192.42 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   2.0      0      23&lt;br /&gt;
Processing:    19  526  97.3    544     672&lt;br /&gt;
Waiting:       19  525  97.2    544     672&lt;br /&gt;
Total:         19  527  97.6    546     672&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    546&lt;br /&gt;
  66%    559&lt;br /&gt;
  75%    567&lt;br /&gt;
  80%    574&lt;br /&gt;
  90%    594&lt;br /&gt;
  95%    613&lt;br /&gt;
  98%    628&lt;br /&gt;
  99%    644&lt;br /&gt;
 100%    672 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tomcat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   0.647 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1544.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       64.746 [ms] (mean)&lt;br /&gt;
Time per request:       0.647 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          895.93 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       3&lt;br /&gt;
Processing:    21   61  10.1     63      84&lt;br /&gt;
Waiting:       20   61  10.1     63      84&lt;br /&gt;
Total:         21   61  10.1     63      84&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     63&lt;br /&gt;
  66%     63&lt;br /&gt;
  75%     65&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     71&lt;br /&gt;
  95%     75&lt;br /&gt;
  98%     78&lt;br /&gt;
  99%     79&lt;br /&gt;
 100%     84 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13440</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13440"/>
				<updated>2009-09-01T18:55:53Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*IIS 7.5.7100&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp on Apache&lt;br /&gt;
! Xebra Webapp on IIS&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.243 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    108.19 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean)&lt;br /&gt;
Time per request:       9.243 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          114.84 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:     7    9   4.0      8      63&lt;br /&gt;
Waiting:        7    9   4.0      8      63&lt;br /&gt;
Total:          7    9   4.0      8      63&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      8&lt;br /&gt;
  66%      9&lt;br /&gt;
  75%      9&lt;br /&gt;
  80%      9&lt;br /&gt;
  90%     10&lt;br /&gt;
  95%     13&lt;br /&gt;
  98%     16&lt;br /&gt;
  99%     31&lt;br /&gt;
 100%     63 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tomcat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   0.893 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1120.35 [#/sec] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          649.89 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     0    1   0.6      1      11&lt;br /&gt;
Waiting:        0    1   0.6      1      11&lt;br /&gt;
Total:          0    1   0.5      1      11&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      1&lt;br /&gt;
  95%      1&lt;br /&gt;
  98%      1&lt;br /&gt;
  99%      1&lt;br /&gt;
 100%     11 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   8.527 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    117.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       85.273 [ms] (mean)&lt;br /&gt;
Time per request:       8.527 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          82.00 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:    31   84  10.5     87     107&lt;br /&gt;
Waiting:       31   84  10.5     87     107&lt;br /&gt;
Total:         31   85  10.5     87     107&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     87&lt;br /&gt;
  66%     90&lt;br /&gt;
  75%     93&lt;br /&gt;
  80%     95&lt;br /&gt;
  90%     98&lt;br /&gt;
  95%    101&lt;br /&gt;
  98%    103&lt;br /&gt;
  99%    104&lt;br /&gt;
 100%    107 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   5.491 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    182.11 [#/sec] (mean)&lt;br /&gt;
Time per request:       54.912 [ms] (mean)&lt;br /&gt;
Time per request:       5.491 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          193.31 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   1.8      0      27&lt;br /&gt;
Processing:    10   54  20.2     49     169&lt;br /&gt;
Waiting:        9   53  20.2     49     169&lt;br /&gt;
Total:         11   54  20.2     50     169&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     50&lt;br /&gt;
  66%     57&lt;br /&gt;
  75%     63&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     81&lt;br /&gt;
  95%     96&lt;br /&gt;
  98%    111&lt;br /&gt;
  99%    124&lt;br /&gt;
 100%    169 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tomcat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.559 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1790.21 [#/sec] (mean)&lt;br /&gt;
Time per request:       5.586 [ms] (mean)&lt;br /&gt;
Time per request:       0.559 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          1038.46 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:     1    5   2.9      5      87&lt;br /&gt;
Waiting:        1    5   2.9      5      87&lt;br /&gt;
Total:          2    5   2.9      5      87&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      5&lt;br /&gt;
  66%      6&lt;br /&gt;
  75%      6&lt;br /&gt;
  80%      6&lt;br /&gt;
  90%      6&lt;br /&gt;
  95%      7&lt;br /&gt;
  98%      9&lt;br /&gt;
  99%     11&lt;br /&gt;
 100%     87 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   8.970 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    111.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       896.973 [ms] (mean)&lt;br /&gt;
Time per request:       8.970 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          77.95 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:    54  846 175.6    912    1018&lt;br /&gt;
Waiting:       54  846 175.6    912    1018&lt;br /&gt;
Total:         54  846 175.6    912    1018&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    912&lt;br /&gt;
  66%    929&lt;br /&gt;
  75%    940&lt;br /&gt;
  80%    972&lt;br /&gt;
  90%    994&lt;br /&gt;
  95%   1002&lt;br /&gt;
  98%   1014&lt;br /&gt;
  99%   1016&lt;br /&gt;
 100%   1018 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /hellworld/index.xeb&lt;br /&gt;
Document Length:        848 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   5.517 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      1087000 bytes&lt;br /&gt;
HTML transferred:       848000 bytes&lt;br /&gt;
Requests per second:    181.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       551.660 [ms] (mean)&lt;br /&gt;
Time per request:       5.517 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          192.42 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    1   2.0      0      23&lt;br /&gt;
Processing:    19  526  97.3    544     672&lt;br /&gt;
Waiting:       19  525  97.2    544     672&lt;br /&gt;
Total:         19  527  97.6    546     672&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    546&lt;br /&gt;
  66%    559&lt;br /&gt;
  75%    567&lt;br /&gt;
  80%    574&lt;br /&gt;
  90%    594&lt;br /&gt;
  95%    613&lt;br /&gt;
  98%    628&lt;br /&gt;
  99%    644&lt;br /&gt;
 100%    672 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tomcat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   0.647 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1544.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       64.746 [ms] (mean)&lt;br /&gt;
Time per request:       0.647 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          895.93 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       3&lt;br /&gt;
Processing:    21   61  10.1     63      84&lt;br /&gt;
Waiting:       20   61  10.1     63      84&lt;br /&gt;
Total:         21   61  10.1     63      84&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     63&lt;br /&gt;
  66%     63&lt;br /&gt;
  75%     65&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     71&lt;br /&gt;
  95%     75&lt;br /&gt;
  98%     78&lt;br /&gt;
  99%     79&lt;br /&gt;
 100%     84 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13439</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13439"/>
				<updated>2009-09-01T18:53:24Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*IIS 7.5.7100&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   0.893 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1120.35 [#/sec] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          649.89 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     0    1   0.6      1      11&lt;br /&gt;
Waiting:        0    1   0.6      1      11&lt;br /&gt;
Total:          0    1   0.5      1      11&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      1&lt;br /&gt;
  95%      1&lt;br /&gt;
  98%      1&lt;br /&gt;
  99%      1&lt;br /&gt;
 100%     11 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   8.527 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    117.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       85.273 [ms] (mean)&lt;br /&gt;
Time per request:       8.527 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          82.00 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:    31   84  10.5     87     107&lt;br /&gt;
Waiting:       31   84  10.5     87     107&lt;br /&gt;
Total:         31   85  10.5     87     107&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     87&lt;br /&gt;
  66%     90&lt;br /&gt;
  75%     93&lt;br /&gt;
  80%     95&lt;br /&gt;
  90%     98&lt;br /&gt;
  95%    101&lt;br /&gt;
  98%    103&lt;br /&gt;
  99%    104&lt;br /&gt;
 100%    107 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.559 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1790.21 [#/sec] (mean)&lt;br /&gt;
Time per request:       5.586 [ms] (mean)&lt;br /&gt;
Time per request:       0.559 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          1038.46 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:     1    5   2.9      5      87&lt;br /&gt;
Waiting:        1    5   2.9      5      87&lt;br /&gt;
Total:          2    5   2.9      5      87&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      5&lt;br /&gt;
  66%      6&lt;br /&gt;
  75%      6&lt;br /&gt;
  80%      6&lt;br /&gt;
  90%      6&lt;br /&gt;
  95%      7&lt;br /&gt;
  98%      9&lt;br /&gt;
  99%     11&lt;br /&gt;
 100%     87 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   8.970 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    111.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       896.973 [ms] (mean)&lt;br /&gt;
Time per request:       8.970 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          77.95 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:    54  846 175.6    912    1018&lt;br /&gt;
Waiting:       54  846 175.6    912    1018&lt;br /&gt;
Total:         54  846 175.6    912    1018&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    912&lt;br /&gt;
  66%    929&lt;br /&gt;
  75%    940&lt;br /&gt;
  80%    972&lt;br /&gt;
  90%    994&lt;br /&gt;
  95%   1002&lt;br /&gt;
  98%   1014&lt;br /&gt;
  99%   1016&lt;br /&gt;
 100%   1018 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   0.647 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1544.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       64.746 [ms] (mean)&lt;br /&gt;
Time per request:       0.647 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          895.93 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       3&lt;br /&gt;
Processing:    21   61  10.1     63      84&lt;br /&gt;
Waiting:       20   61  10.1     63      84&lt;br /&gt;
Total:         21   61  10.1     63      84&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     63&lt;br /&gt;
  66%     63&lt;br /&gt;
  75%     65&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     71&lt;br /&gt;
  95%     75&lt;br /&gt;
  98%     78&lt;br /&gt;
  99%     79&lt;br /&gt;
 100%     84 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13438</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13438"/>
				<updated>2009-09-01T18:49:42Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   0.893 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1120.35 [#/sec] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean)&lt;br /&gt;
Time per request:       0.893 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          649.89 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     0    1   0.6      1      11&lt;br /&gt;
Waiting:        0    1   0.6      1      11&lt;br /&gt;
Total:          0    1   0.5      1      11&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      1&lt;br /&gt;
  66%      1&lt;br /&gt;
  75%      1&lt;br /&gt;
  80%      1&lt;br /&gt;
  90%      1&lt;br /&gt;
  95%      1&lt;br /&gt;
  98%      1&lt;br /&gt;
  99%      1&lt;br /&gt;
 100%     11 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   8.527 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    117.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       85.273 [ms] (mean)&lt;br /&gt;
Time per request:       8.527 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          82.00 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:    31   84  10.5     87     107&lt;br /&gt;
Waiting:       31   84  10.5     87     107&lt;br /&gt;
Total:         31   85  10.5     87     107&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     87&lt;br /&gt;
  66%     90&lt;br /&gt;
  75%     93&lt;br /&gt;
  80%     95&lt;br /&gt;
  90%     98&lt;br /&gt;
  95%    101&lt;br /&gt;
  98%    103&lt;br /&gt;
  99%    104&lt;br /&gt;
 100%    107 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.559 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1790.21 [#/sec] (mean)&lt;br /&gt;
Time per request:       5.586 [ms] (mean)&lt;br /&gt;
Time per request:       0.559 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          1038.46 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:     1    5   2.9      5      87&lt;br /&gt;
Waiting:        1    5   2.9      5      87&lt;br /&gt;
Total:          2    5   2.9      5      87&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      5&lt;br /&gt;
  66%      6&lt;br /&gt;
  75%      6&lt;br /&gt;
  80%      6&lt;br /&gt;
  90%      6&lt;br /&gt;
  95%      7&lt;br /&gt;
  98%      9&lt;br /&gt;
  99%     11&lt;br /&gt;
 100%     87 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   8.970 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    111.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       896.973 [ms] (mean)&lt;br /&gt;
Time per request:       8.970 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          77.95 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:    54  846 175.6    912    1018&lt;br /&gt;
Waiting:       54  846 175.6    912    1018&lt;br /&gt;
Total:         54  846 175.6    912    1018&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    912&lt;br /&gt;
  66%    929&lt;br /&gt;
  75%    940&lt;br /&gt;
  80%    972&lt;br /&gt;
  90%    994&lt;br /&gt;
  95%   1002&lt;br /&gt;
  98%   1014&lt;br /&gt;
  99%   1016&lt;br /&gt;
 100%   1018 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   0.647 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1544.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       64.746 [ms] (mean)&lt;br /&gt;
Time per request:       0.647 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          895.93 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       3&lt;br /&gt;
Processing:    21   61  10.1     63      84&lt;br /&gt;
Waiting:       20   61  10.1     63      84&lt;br /&gt;
Total:         21   61  10.1     63      84&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     63&lt;br /&gt;
  66%     63&lt;br /&gt;
  75%     65&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     71&lt;br /&gt;
  95%     75&lt;br /&gt;
  98%     78&lt;br /&gt;
  99%     79&lt;br /&gt;
 100%     84 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13437</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13437"/>
				<updated>2009-09-01T18:48:51Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   8.970 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    111.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       896.973 [ms] (mean)&lt;br /&gt;
Time per request:       8.970 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          77.95 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:    54  846 175.6    912    1018&lt;br /&gt;
Waiting:       54  846 175.6    912    1018&lt;br /&gt;
Total:         54  846 175.6    912    1018&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    912&lt;br /&gt;
  66%    929&lt;br /&gt;
  75%    940&lt;br /&gt;
  80%    972&lt;br /&gt;
  90%    994&lt;br /&gt;
  95%   1002&lt;br /&gt;
  98%   1014&lt;br /&gt;
  99%   1016&lt;br /&gt;
 100%   1018 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   8.527 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    117.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       85.273 [ms] (mean)&lt;br /&gt;
Time per request:       8.527 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          82.00 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:    31   84  10.5     87     107&lt;br /&gt;
Waiting:       31   84  10.5     87     107&lt;br /&gt;
Total:         31   85  10.5     87     107&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     87&lt;br /&gt;
  66%     90&lt;br /&gt;
  75%     93&lt;br /&gt;
  80%     95&lt;br /&gt;
  90%     98&lt;br /&gt;
  95%    101&lt;br /&gt;
  98%    103&lt;br /&gt;
  99%    104&lt;br /&gt;
 100%    107 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   0.559 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1790.21 [#/sec] (mean)&lt;br /&gt;
Time per request:       5.586 [ms] (mean)&lt;br /&gt;
Time per request:       0.559 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          1038.46 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:     1    5   2.9      5      87&lt;br /&gt;
Waiting:        1    5   2.9      5      87&lt;br /&gt;
Total:          2    5   2.9      5      87&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      5&lt;br /&gt;
  66%      6&lt;br /&gt;
  75%      6&lt;br /&gt;
  80%      6&lt;br /&gt;
  90%      6&lt;br /&gt;
  95%      7&lt;br /&gt;
  98%      9&lt;br /&gt;
  99%     11&lt;br /&gt;
 100%     87 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   8.970 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    111.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       896.973 [ms] (mean)&lt;br /&gt;
Time per request:       8.970 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          77.95 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       2&lt;br /&gt;
Processing:    54  846 175.6    912    1018&lt;br /&gt;
Waiting:       54  846 175.6    912    1018&lt;br /&gt;
Total:         54  846 175.6    912    1018&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%    912&lt;br /&gt;
  66%    929&lt;br /&gt;
  75%    940&lt;br /&gt;
  80%    972&lt;br /&gt;
  90%    994&lt;br /&gt;
  95%   1002&lt;br /&gt;
  98%   1014&lt;br /&gt;
  99%   1016&lt;br /&gt;
 100%   1018 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /index.html&lt;br /&gt;
Document Length:        332 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      100&lt;br /&gt;
Time taken for tests:   0.647 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      594000 bytes&lt;br /&gt;
HTML transferred:       332000 bytes&lt;br /&gt;
Requests per second:    1544.49 [#/sec] (mean)&lt;br /&gt;
Time per request:       64.746 [ms] (mean)&lt;br /&gt;
Time per request:       0.647 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          895.93 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       3&lt;br /&gt;
Processing:    21   61  10.1     63      84&lt;br /&gt;
Waiting:       20   61  10.1     63      84&lt;br /&gt;
Total:         21   61  10.1     63      84&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     63&lt;br /&gt;
  66%     63&lt;br /&gt;
  75%     65&lt;br /&gt;
  80%     67&lt;br /&gt;
  90%     71&lt;br /&gt;
  95%     75&lt;br /&gt;
  98%     78&lt;br /&gt;
  99%     79&lt;br /&gt;
 100%     84 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13436</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13436"/>
				<updated>2009-09-01T18:46:02Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      10&lt;br /&gt;
Time taken for tests:   8.527 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    117.27 [#/sec] (mean)&lt;br /&gt;
Time per request:       85.273 [ms] (mean)&lt;br /&gt;
Time per request:       8.527 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          82.00 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.4      0       1&lt;br /&gt;
Processing:    31   84  10.5     87     107&lt;br /&gt;
Waiting:       31   84  10.5     87     107&lt;br /&gt;
Total:         31   85  10.5     87     107&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     87&lt;br /&gt;
  66%     90&lt;br /&gt;
  75%     93&lt;br /&gt;
  80%     95&lt;br /&gt;
  90%     98&lt;br /&gt;
  95%    101&lt;br /&gt;
  98%    103&lt;br /&gt;
  99%    104&lt;br /&gt;
 100%    107 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13435</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13435"/>
				<updated>2009-09-01T18:44:39Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Windows 7 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.7.9743 GPL Edition - windows&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*Apache 2.2.11&lt;br /&gt;
*ApacheBench 2.3&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Document Path:          /helloworld/index.xeb&lt;br /&gt;
Document Length:        331 bytes&lt;br /&gt;
&lt;br /&gt;
Concurrency Level:      1&lt;br /&gt;
Time taken for tests:   9.290 seconds&lt;br /&gt;
Complete requests:      1000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Total transferred:      716000 bytes&lt;br /&gt;
HTML transferred:       331000 bytes&lt;br /&gt;
Requests per second:    107.64 [#/sec] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean)&lt;br /&gt;
Time per request:       9.290 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          75.27 [Kbytes/sec] received&lt;br /&gt;
&lt;br /&gt;
Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    0   0.3      0       1&lt;br /&gt;
Processing:     7    9   1.4      9      21&lt;br /&gt;
Waiting:        7    9   1.4      9      21&lt;br /&gt;
Total:          7    9   1.4      9      21&lt;br /&gt;
&lt;br /&gt;
Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%      9&lt;br /&gt;
  66%     10&lt;br /&gt;
  75%     10&lt;br /&gt;
  80%     10&lt;br /&gt;
  90%     11&lt;br /&gt;
  95%     11&lt;br /&gt;
  98%     14&lt;br /&gt;
  99%     16&lt;br /&gt;
 100%     21 (longest request)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
1000 requests, concurrency level 100&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13434</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13434"/>
				<updated>2009-09-01T17:46:25Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Ubuntu 9.04 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.8.524 GPL Edition - linux-x86&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*Apache 2.2.13&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xebra Webapp&lt;br /&gt;
! Java JSP Webapp on Tomcat&lt;br /&gt;
! Static Page on Apache&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
100 requests, no concurrency &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
a&lt;br /&gt;
|&lt;br /&gt;
b&lt;br /&gt;
|&lt;br /&gt;
c&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13433</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13433"/>
				<updated>2009-09-01T17:39:50Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Environment==&lt;br /&gt;
*Ubuntu 9.04 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.8.524 GPL Edition - linux-x86&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*Apache 2.2.13&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13432</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13432"/>
				<updated>2009-09-01T17:36:50Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Environment==&lt;br /&gt;
*Ubuntu 9.04 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.8.524 GPL Edition - linux-x86&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
*Apache 2.2.13&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13430</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13430"/>
				<updated>2009-09-01T17:27:27Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Environment==&lt;br /&gt;
*Ubuntu 9.04 64Bit&lt;br /&gt;
*Xebra revision 80570 &lt;br /&gt;
*Eiffel Studio 6.5.8.524 GPL Edition - linux-x86&lt;br /&gt;
*Eiffel src revision 80570&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
*Using experimental library&lt;br /&gt;
*Server and webapps are finalized. Webapp is unmanaged.&lt;br /&gt;
&lt;br /&gt;
The page has the following content:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 STRICT//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Xebra Hello World Application&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Hello {print 'WORLD' or 'world' depending on current time}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13429</id>
		<title>Xebra Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Benchmarks&amp;diff=13429"/>
				<updated>2009-09-01T17:26:08Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: New page: Ubuntu 9.04 64Bit Xebra revision 80570  Eiffel Studio 6.5.8.524 GPL Edition - linux-x86 Eiffel src revision 80570 Using experimental library  Server and webapps are finalized. Webapp is un...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ubuntu 9.04 64Bit&lt;br /&gt;
Xebra revision 80570 &lt;br /&gt;
Eiffel Studio 6.5.8.524 GPL Edition - linux-x86&lt;br /&gt;
Eiffel src revision 80570&lt;br /&gt;
Using experimental library&lt;br /&gt;
&lt;br /&gt;
Server and webapps are finalized. Webapp is unmanaged.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Documentation&amp;diff=13428</id>
		<title>Xebra Documentation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Documentation&amp;diff=13428"/>
				<updated>2009-09-01T17:02:32Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
* [[Xebra Socket Communication]]&lt;br /&gt;
&lt;br /&gt;
=Xebra HTTP Server Plugins=&lt;br /&gt;
* [[Xebra Module Communication Protocol|Module Communication Protocol]]&lt;br /&gt;
* [[Xebra Module Content Types|Content Types]]&lt;br /&gt;
&lt;br /&gt;
==Mod_xebra for Apache==&lt;br /&gt;
* [[Xebra Apache Module Windows|Apache Module Windows]]&lt;br /&gt;
&lt;br /&gt;
=Xebra Server=&lt;br /&gt;
* [[Xebra Server Administration]]&lt;br /&gt;
&lt;br /&gt;
= Web Applications =&lt;br /&gt;
* [[Xebra Webapp Config File]]&lt;br /&gt;
&lt;br /&gt;
==Xebra Tag Libraries==&lt;br /&gt;
On the following pages you can find the descriptions of the different tags of the available tag libraries. &lt;br /&gt;
* [[Xebra Taglib Page|Page]]&lt;br /&gt;
* [[Xebra Taglib Xeb|Xeb]]&lt;br /&gt;
* [[Xebra Taglib Form|Form]]&lt;br /&gt;
* [[Xebra Taglib XRPC|XRPC]]&lt;br /&gt;
* [[Xebra Tag Attribute|Tag Attribute]]&lt;br /&gt;
&lt;br /&gt;
==Master pages==&lt;br /&gt;
* [[Xebra Master Pages|Templates with master pages]]&lt;br /&gt;
&lt;br /&gt;
==XML_RPC==&lt;br /&gt;
* [[Xebra XML_RPC]]&lt;br /&gt;
&lt;br /&gt;
=Code documentation=&lt;br /&gt;
==Xebra Libraries==&lt;br /&gt;
=== Thread Utilities ===&lt;br /&gt;
An implementation of a [http://en.wikipedia.org/wiki/Thread_pool_pattern| Thread Pool]. There are two implementations: with or without data class reuse (DATA_THREAD_POOL and THREAD_POOL).&lt;br /&gt;
&lt;br /&gt;
=== Xebra AST Elements ===&lt;br /&gt;
This library contains various classes which model eiffel language constructs. It consists of classes, features, comments, locals and expressions. They can be combined to build an object model of an eiffel class. Convenience features are provided to add locals and variables with unique names.&lt;br /&gt;
AST Elements can be serialized to a text representation.&lt;br /&gt;
It also contains some specialized classes for Xebra.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Common ===&lt;br /&gt;
&lt;br /&gt;
Xebra_common contains all commands, command responses and interfaces for commands that are used by the server and the webapps. Furthermore, it contains deferred classes for server modules and webapp config classes.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Error===&lt;br /&gt;
Provides internal error types for all xebra applications such as XERROR_CANNOT_OPEN_FILE or XERROR_SOCKET_NOT_BOUND. These errors are not supplied to the browser but only displayed in the log/console.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Error Responses ===&lt;br /&gt;
Classes from xebra_error_responses are split into XER_SERVER: error responses generated by the server and XER_APP: error responses generated by the webapp. Both types are ultimately sent to the http server plugin and displayed in the user's browser. For instance XER_POST_TOO_BIG is a server error response that is created if the post request is bigger than allowed. XER_APP_CANNOT_FIND_PAGE is a response created by the webapp and then sent to the server if no servlet with the specified name was defined.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Http ===&lt;br /&gt;
&lt;br /&gt;
Xebra_http provides classes for cookies, html requests, html responses, sessions and their parsers.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary Base ===&lt;br /&gt;
The base tag library contains all the basic Xebra tag implementations like display, call and iterate. For a more detailed explanation of the tags see [[Xebra_Taglib_Xeb| the documentation]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary Form ===&lt;br /&gt;
The form tag library contains all tag implementations for form related tags. Automatic wrapping of values, controls and validations are included in this library. For a more detailed explanation see [[Xebra_Taglib_Form|here]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary XRPC ===&lt;br /&gt;
This tag library contains tags for XML-RPC applications. For further information see [[Xebra_Taglib_XRPC|here]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Utilities ===&lt;br /&gt;
&lt;br /&gt;
Xebra_utilities is a collection of independent helper classes such as text escaper, file utilities, log outputter, stopwatch, string expander etc.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Tags ===&lt;br /&gt;
Contains all super classes used for xebra tags and xebra tag arguments. Also contains super classes for servlet generation (XGEN_SERVLET_GENERATOR).&lt;br /&gt;
&lt;br /&gt;
===Xebra Web Application===&lt;br /&gt;
&lt;br /&gt;
Provides all necessary base classes such as XWA_SERVLET, XWA_CONTROLLER, XWA_APPLICATION to webapp applications. Takes care of communication with server.&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
* [[Xebra Benchmarks|Benchmarks]]&lt;br /&gt;
&lt;br /&gt;
== Howtos ==&lt;br /&gt;
===Build Windows Installer===&lt;br /&gt;
&lt;br /&gt;
* Install apache (c:\apache)&lt;br /&gt;
*Visual Build Professional 7: &lt;br /&gt;
**Open xebra\tools\installer\win\XebraBuild.bld&lt;br /&gt;
**Adapt Macro-&amp;gt;Project variables to match your system (APACHE, ROOT)&lt;br /&gt;
**Run&lt;br /&gt;
*Inno Setup 5 Compiler&lt;br /&gt;
**Open xebra\tools\installer\win\innosetup\xebra_install_test.iss&lt;br /&gt;
**Generate new AppId&lt;br /&gt;
**Changed AppVersion&lt;br /&gt;
**Check that LicenseFile file exists (gnu licence?)&lt;br /&gt;
**Check Source files are correct folder&lt;br /&gt;
**Build&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13425</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13425"/>
				<updated>2009-09-01T16:48:19Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
*  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
* Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
* Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
* Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
* Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* The problem with uploading certain files seems to persist&lt;br /&gt;
* Allow in .wapp relative path for the ecf&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== HTTP Server Plugins ===&lt;br /&gt;
&lt;br /&gt;
* Automatically launch xebra server&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept on timeout (DEVELOPER_EXCEPTION)&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement caching&lt;br /&gt;
* Add support for unicode&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13424</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13424"/>
				<updated>2009-09-01T16:13:36Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Webapps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
*  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
* Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
* Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
* Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
* Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* The problem with uploading certain files seems to persist&lt;br /&gt;
* Allow in .wapp relative path for the ecf&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== HTTP Server Plugins ===&lt;br /&gt;
&lt;br /&gt;
* Automatically launch xebra server&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement caching&lt;br /&gt;
* Add support for unicode&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13423</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13423"/>
				<updated>2009-09-01T16:12:59Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
*  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
* Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
* Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
* Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
* Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
* The problem with uploading certain files seems to persist&lt;br /&gt;
&lt;br /&gt;
=== HTTP Server Plugins ===&lt;br /&gt;
&lt;br /&gt;
* Automatically launch xebra server&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement caching&lt;br /&gt;
* Add support for unicode&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13422</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13422"/>
				<updated>2009-09-01T16:12:24Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Webapps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
*  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
* Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
* Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
* Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
* Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
* The problem with uploading certain files seems to persist&lt;br /&gt;
&lt;br /&gt;
=== HTTP Server Plugins ===&lt;br /&gt;
&lt;br /&gt;
* Automatically launch xebra server&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement chaching&lt;br /&gt;
* Add support for unicode&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13421</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13421"/>
				<updated>2009-09-01T16:11:45Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* HTTP Server Plugins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
*  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
* Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
* Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
* Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
* Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== HTTP Server Plugins ===&lt;br /&gt;
&lt;br /&gt;
* Automatically launch xebra server&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement chaching&lt;br /&gt;
* Add support for unicode&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13419</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13419"/>
				<updated>2009-09-01T16:11:24Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
# Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== HTTP Server Plugins ===&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement chaching&lt;br /&gt;
* Add support for unicode&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13418</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13418"/>
				<updated>2009-09-01T16:10:23Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Webapps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
# Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement chaching&lt;br /&gt;
* Add support for unicode&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13417</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13417"/>
				<updated>2009-09-01T16:10:12Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Xebra Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
# Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Implement multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement chaching&lt;br /&gt;
* Add support for unicode&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13416</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13416"/>
				<updated>2009-09-01T16:09:54Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
# Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement chaching&lt;br /&gt;
* Add support for unicode&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13414</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13414"/>
				<updated>2009-09-01T16:09:15Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
# Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix memory leak in socket.accept&lt;br /&gt;
* I18n support&lt;br /&gt;
* Chaching&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13413</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13413"/>
				<updated>2009-09-01T16:08:57Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
# Multi-threaded translation&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Fix the memoryleak in socket.accept&lt;br /&gt;
* I18n support&lt;br /&gt;
* Chaching&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13411</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13411"/>
				<updated>2009-09-01T16:07:32Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Webapps ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* I18n support&lt;br /&gt;
* Chaching&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13410</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13410"/>
				<updated>2009-09-01T16:06:57Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Implement i18n support&lt;br /&gt;
* Implement chaching&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13408</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13408"/>
				<updated>2009-09-01T16:05:19Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* Implement i18n support&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13407</id>
		<title>Xebra Issues</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Issues&amp;diff=13407"/>
				<updated>2009-09-01T16:04:57Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Xebra Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
The following list represents the improvements which should be implemented in further releases but which are yet missing.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Translator ===&lt;br /&gt;
&lt;br /&gt;
#  Allow parameters for calls in xeb files. As for now it is only possible to use predefined variables (multiple allowed). The new implementation would allow manifest strings, integers and all the other primitive types to be added. For this purpose the grammar has to be modified and probably some model classes.&lt;br /&gt;
# Make sure that all the variable names used don't conflict with other names (unless the user used them twice).&lt;br /&gt;
# Allow injected #{} and %=% into attributes, replacing the functionality of xeb:concat. In a bigger step the grammar for attributes could be expanded to allow Eiffel expressions.&lt;br /&gt;
# Establish common names and change tags accordingly if they don't conform. An example is 'type' which should be used instead of 'class'.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Server ===&lt;br /&gt;
* Multithreaded request processing&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13403</id>
		<title>Xebra Server Administration</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13403"/>
				<updated>2009-09-01T15:49:18Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Run Arguments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server=&lt;br /&gt;
This section describes how to run the server if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
* Make sure the server config file is correctly set up. I.e. don't forget to remove '.exe' for linux, make sure to select the 'F_code' directory if you compiled with finalization.&lt;br /&gt;
* Run&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Or to see a list of run arguments type instead&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Stop the server by typing&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a list of server commands type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server in EiffelStudio=&lt;br /&gt;
This section describes how to run the server withing EiffelStudio if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
# Launch estudio and compile the project $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf&lt;br /&gt;
# Go to the Execution -&amp;gt; Exceptions Handling dialog.  Check &amp;quot;Filter Exceptions?&amp;quot; and change DEVELOPER_EXCEPTION to &amp;quot;Ignore&amp;quot;.&lt;br /&gt;
# Open the Execution -&amp;gt; Execution Parameters dialog and set &amp;quot;config.srv&amp;quot; as argument (see below for more info about run arguments).&lt;br /&gt;
# Compile&lt;br /&gt;
# Fill in the [[Xebra Server Config File]]&lt;br /&gt;
# Run&lt;br /&gt;
# Browse to http://localhost/helloworld/. The server now translates, generates, compiles and finally runs the helloworld application.&lt;br /&gt;
&lt;br /&gt;
= Run in Create Webapp Mode=&lt;br /&gt;
&lt;br /&gt;
You can use the server as a tool to only translate, generate and compile a webapp. The application will then not act as a 'server'. Use the '-c' option for that matter.&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 $XEBRA_DEV/bin/xebra_server $XEBRA_DEV/conf/config.srv -d 6 -c $XEBRA_DEV/www/demoapplication/config.wapp&lt;br /&gt;
&lt;br /&gt;
You can interrupt and terminate anytime by hitting any key.&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
The server automatically launches the following modules:&lt;br /&gt;
* mod_http: Listens to requests from the http plugin (Apache Module or IIS7 Handler) on port 55001. These request are forwarded to the appropriate webapp.&lt;br /&gt;
* mod_console: Reads input from the console. The commands described below can be invoked. &lt;br /&gt;
* mod_cmd: Listens to command request from the webapps on port 55002.&lt;br /&gt;
&lt;br /&gt;
{{Note| The server can only be shut down by the servercontrol webapp if the mod_console already has been shut down manually from within the console! This problem is due to the uninteruptability of io.read_line}}&lt;br /&gt;
&lt;br /&gt;
=Webapps=&lt;br /&gt;
&lt;br /&gt;
==Managed and Unmanaged Webapps==&lt;br /&gt;
The server can handle two different types of webapps: managed and unmanaged. The attribute &amp;quot;managed_webapps&amp;quot; in the server config file specifies the path to the root of the managed webapps. On startup the server scans this path for webapp config files and loads them. Managed webapps are translated, generated, compiled and run automatically by the server. All managed webapps are run locally. Unmanaged webapps are specified under &amp;quot;unmanaged_webapps&amp;quot; in the server config file. These have to be managed manually by the user but can be run on any other machine. The xebra server application can be used as a tool to only translate, generate and compile a webapp by using the -c option.&lt;br /&gt;
&lt;br /&gt;
If the option -u was set, the server treats all managed webapps as unmanaged ones, i.e. it does not translate, compile and run the webapps but just tries to connect immediately. This should be used when a webapp is launched in estudio for debugging and the server does not need to run and shutdown the webapp.&lt;br /&gt;
&lt;br /&gt;
==Development Mode==&lt;br /&gt;
By default, a managed webapp is set to Development Mode which means that the server checks everytime a request was made if the webapp needs to be retranslated and compiled. This makes access to the webapp very slow. As soon as development of the webapp stopps, dev_mod should be set to off.&lt;br /&gt;
&lt;br /&gt;
==Fire off a webapp==&lt;br /&gt;
If the server crashed and therefore could not properly shut down all managed webapps, they will still be running when the server is relaunched. Hence, the socket will be occupied when the server tries to launch a webapp. Use the fire command to fire off a possibly running webapp. The fire command tries to directly connect to the webapp and send a shutdown signal regardless if the webapp process is owned by the server or not. This command is also available for unmanaged webapps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Config File=&lt;br /&gt;
* see [[Xebra Server Config File]]&lt;br /&gt;
&lt;br /&gt;
=Run Arguments=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 USAGE:&lt;br /&gt;
   xebra_server.exe &amp;lt;config_filename&amp;gt; [-d &amp;lt;debug_level&amp;gt;] [-u] [-c &amp;lt;Webapp config file&amp;gt;] [-v] [-nologo]&lt;br /&gt;
&lt;br /&gt;
OPTIONS:&lt;br /&gt;
   Options should be prefixed with: '-' or '/'&lt;br /&gt;
&lt;br /&gt;
   -d --debug_level  : Specifies a debug level.&lt;br /&gt;
                        1: Start and stop of overall application&lt;br /&gt;
                        2: Application configuration&lt;br /&gt;
                        3: Start and stop of main components&lt;br /&gt;
                        4: Information about tasks that are performed&lt;br /&gt;
                        5: Information about subtasks that are performed&lt;br /&gt;
                        6: Very verbose information about subtasks that are performed (Optional)&lt;br /&gt;
   -u --unmanaged    : If set, the server treats all managed webapps as unmanged webapps. (Optional)&lt;br /&gt;
   -c --create_webapp: With this switch the server can be used as a tool to translate, generate and compile the&lt;br /&gt;
                       specified webapp (Optional)&lt;br /&gt;
   -? --help         : Display usage information. (Optional)&lt;br /&gt;
   -v --version      : Displays version information. (Optional)&lt;br /&gt;
      --nologo       : Supresses copyright information. (Optional)&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS:&lt;br /&gt;
   &amp;lt;debug_level&amp;gt;       : The debug level (1-6)&lt;br /&gt;
   &amp;lt;Webapp config file&amp;gt;: The webapp config file&lt;br /&gt;
&lt;br /&gt;
NON-SWITCHED ARGUMENTS:&lt;br /&gt;
   &amp;lt;config_filename&amp;gt;: The path of the config file to use.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Console Commands=&lt;br /&gt;
 - 'help':              Displays a list of commands&lt;br /&gt;
&lt;br /&gt;
===Server Control===&lt;br /&gt;
 - 'exit':               Shuts down the server.&lt;br /&gt;
 - 'reload':             Reloads the server configuration file.&lt;br /&gt;
 - 'shutdown_webapps':   Shuts down all webapps.&lt;br /&gt;
&lt;br /&gt;
===Modules===&lt;br /&gt;
 - 'mlaunch &amp;lt;name&amp;gt;':      Re-launches a server module.&lt;br /&gt;
 - 'modules':             Displays the available modules.&lt;br /&gt;
 - 'mshutdown &amp;lt;name&amp;gt;':    Shuts down a server module.&lt;br /&gt;
&lt;br /&gt;
=== Webapps===&lt;br /&gt;
 - 'clean &amp;lt;name&amp;gt;':        Cleans, re-translates, compiles and launches a webapp. (Managed webapp only)&lt;br /&gt;
 - 'dev &amp;lt;name&amp;gt;':          Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'dev_all':             Sets dev_mod to on on all webapps.&lt;br /&gt;
 - 'dev_off &amp;lt;name&amp;gt;':      Sets developing mode of a webapp to off. (Managed webapp only)&lt;br /&gt;
 - 'dev_off_all':         Sets dev_mod to off on all webapps.&lt;br /&gt;
 - 'dev_on &amp;lt;name&amp;gt;':       Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'disable &amp;lt;name&amp;gt;':      Disables a webapp.&lt;br /&gt;
 - 'enable &amp;lt;name&amp;gt;':       Enables a webapp.&lt;br /&gt;
 - 'fire &amp;lt;name&amp;gt;':         Sends shutdown signal directly to webapp.&lt;br /&gt;
 - 'shutdown &amp;lt;name&amp;gt;':     Shuts down a webapp. (Managed webapp only)&lt;br /&gt;
 - 'translate &amp;lt;name&amp;gt;':    Forces re-translation of webapp (without cleaning). (Managed webapp only)&lt;br /&gt;
 - 'webapps':             Displays the available webapps.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13402</id>
		<title>Xebra Server Administration</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13402"/>
				<updated>2009-09-01T15:48:26Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Managed and Unmanaged Webapps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server=&lt;br /&gt;
This section describes how to run the server if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
* Make sure the server config file is correctly set up. I.e. don't forget to remove '.exe' for linux, make sure to select the 'F_code' directory if you compiled with finalization.&lt;br /&gt;
* Run&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Or to see a list of run arguments type instead&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Stop the server by typing&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a list of server commands type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server in EiffelStudio=&lt;br /&gt;
This section describes how to run the server withing EiffelStudio if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
# Launch estudio and compile the project $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf&lt;br /&gt;
# Go to the Execution -&amp;gt; Exceptions Handling dialog.  Check &amp;quot;Filter Exceptions?&amp;quot; and change DEVELOPER_EXCEPTION to &amp;quot;Ignore&amp;quot;.&lt;br /&gt;
# Open the Execution -&amp;gt; Execution Parameters dialog and set &amp;quot;config.srv&amp;quot; as argument (see below for more info about run arguments).&lt;br /&gt;
# Compile&lt;br /&gt;
# Fill in the [[Xebra Server Config File]]&lt;br /&gt;
# Run&lt;br /&gt;
# Browse to http://localhost/helloworld/. The server now translates, generates, compiles and finally runs the helloworld application.&lt;br /&gt;
&lt;br /&gt;
= Run in Create Webapp Mode=&lt;br /&gt;
&lt;br /&gt;
You can use the server as a tool to only translate, generate and compile a webapp. The application will then not act as a 'server'. Use the '-c' option for that matter.&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 $XEBRA_DEV/bin/xebra_server $XEBRA_DEV/conf/config.srv -d 6 -c $XEBRA_DEV/www/demoapplication/config.wapp&lt;br /&gt;
&lt;br /&gt;
You can interrupt and terminate anytime by hitting any key.&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
The server automatically launches the following modules:&lt;br /&gt;
* mod_http: Listens to requests from the http plugin (Apache Module or IIS7 Handler) on port 55001. These request are forwarded to the appropriate webapp.&lt;br /&gt;
* mod_console: Reads input from the console. The commands described below can be invoked. &lt;br /&gt;
* mod_cmd: Listens to command request from the webapps on port 55002.&lt;br /&gt;
&lt;br /&gt;
{{Note| The server can only be shut down by the servercontrol webapp if the mod_console already has been shut down manually from within the console! This problem is due to the uninteruptability of io.read_line}}&lt;br /&gt;
&lt;br /&gt;
=Webapps=&lt;br /&gt;
&lt;br /&gt;
==Managed and Unmanaged Webapps==&lt;br /&gt;
The server can handle two different types of webapps: managed and unmanaged. The attribute &amp;quot;managed_webapps&amp;quot; in the server config file specifies the path to the root of the managed webapps. On startup the server scans this path for webapp config files and loads them. Managed webapps are translated, generated, compiled and run automatically by the server. All managed webapps are run locally. Unmanaged webapps are specified under &amp;quot;unmanaged_webapps&amp;quot; in the server config file. These have to be managed manually by the user but can be run on any other machine. The xebra server application can be used as a tool to only translate, generate and compile a webapp by using the -c option.&lt;br /&gt;
&lt;br /&gt;
If the option -u was set, the server treats all managed webapps as unmanaged ones, i.e. it does not translate, compile and run the webapps but just tries to connect immediately. This should be used when a webapp is launched in estudio for debugging and the server does not need to run and shutdown the webapp.&lt;br /&gt;
&lt;br /&gt;
==Development Mode==&lt;br /&gt;
By default, a managed webapp is set to Development Mode which means that the server checks everytime a request was made if the webapp needs to be retranslated and compiled. This makes access to the webapp very slow. As soon as development of the webapp stopps, dev_mod should be set to off.&lt;br /&gt;
&lt;br /&gt;
==Fire off a webapp==&lt;br /&gt;
If the server crashed and therefore could not properly shut down all managed webapps, they will still be running when the server is relaunched. Hence, the socket will be occupied when the server tries to launch a webapp. Use the fire command to fire off a possibly running webapp. The fire command tries to directly connect to the webapp and send a shutdown signal regardless if the webapp process is owned by the server or not. This command is also available for unmanaged webapps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Config File=&lt;br /&gt;
* see [[Xebra Server Config File]]&lt;br /&gt;
&lt;br /&gt;
=Run Arguments=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 USAGE:&lt;br /&gt;
   xebra_server.exe &amp;lt;config_filename&amp;gt; [-d &amp;lt;debug_level&amp;gt;] [-u] [-c &amp;lt;Webapp config file&amp;gt;] [-v] [-nologo]&lt;br /&gt;
&lt;br /&gt;
OPTIONS:&lt;br /&gt;
   Options should be prefixed with: '-' or '/'&lt;br /&gt;
&lt;br /&gt;
   -d --debug_level  : Specifies a debug level.&lt;br /&gt;
                        1: Start and stop of overall application&lt;br /&gt;
                        2: Application configuration&lt;br /&gt;
                        3: Start and stop of main components&lt;br /&gt;
                        4: Information about tasks that are performed&lt;br /&gt;
                        5: Information about subtasks that are performed&lt;br /&gt;
                        6: Very verbose information about subtasks that are performed (Optional)&lt;br /&gt;
   -u --unmanaged    : If set, the server treats all managed webapps as unmanged webapps. (Optional)&lt;br /&gt;
   -c --create_webapp: With this switch the server can be used as a tool to translate, generate and compile the&lt;br /&gt;
                       specified webapp (Optional)&lt;br /&gt;
   -? --help         : Display usage information. (Optional)&lt;br /&gt;
   -v --version      : Displays version information. (Optional)&lt;br /&gt;
      --nologo       : Supresses copyright information. (Optional)&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS:&lt;br /&gt;
   &amp;lt;debug_level&amp;gt;       : The debug level (1-6)&lt;br /&gt;
   &amp;lt;Webapp config file&amp;gt;: The webapp config file&lt;br /&gt;
&lt;br /&gt;
NON-SWITCHED ARGUMENTS:&lt;br /&gt;
   &amp;lt;config_filename&amp;gt;: The path of the config.ini file to use.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Console Commands=&lt;br /&gt;
 - 'help':              Displays a list of commands&lt;br /&gt;
&lt;br /&gt;
===Server Control===&lt;br /&gt;
 - 'exit':               Shuts down the server.&lt;br /&gt;
 - 'reload':             Reloads the server configuration file.&lt;br /&gt;
 - 'shutdown_webapps':   Shuts down all webapps.&lt;br /&gt;
&lt;br /&gt;
===Modules===&lt;br /&gt;
 - 'mlaunch &amp;lt;name&amp;gt;':      Re-launches a server module.&lt;br /&gt;
 - 'modules':             Displays the available modules.&lt;br /&gt;
 - 'mshutdown &amp;lt;name&amp;gt;':    Shuts down a server module.&lt;br /&gt;
&lt;br /&gt;
=== Webapps===&lt;br /&gt;
 - 'clean &amp;lt;name&amp;gt;':        Cleans, re-translates, compiles and launches a webapp. (Managed webapp only)&lt;br /&gt;
 - 'dev &amp;lt;name&amp;gt;':          Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'dev_all':             Sets dev_mod to on on all webapps.&lt;br /&gt;
 - 'dev_off &amp;lt;name&amp;gt;':      Sets developing mode of a webapp to off. (Managed webapp only)&lt;br /&gt;
 - 'dev_off_all':         Sets dev_mod to off on all webapps.&lt;br /&gt;
 - 'dev_on &amp;lt;name&amp;gt;':       Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'disable &amp;lt;name&amp;gt;':      Disables a webapp.&lt;br /&gt;
 - 'enable &amp;lt;name&amp;gt;':       Enables a webapp.&lt;br /&gt;
 - 'fire &amp;lt;name&amp;gt;':         Sends shutdown signal directly to webapp.&lt;br /&gt;
 - 'shutdown &amp;lt;name&amp;gt;':     Shuts down a webapp. (Managed webapp only)&lt;br /&gt;
 - 'translate &amp;lt;name&amp;gt;':    Forces re-translation of webapp (without cleaning). (Managed webapp only)&lt;br /&gt;
 - 'webapps':             Displays the available webapps.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13401</id>
		<title>Xebra Server Administration</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13401"/>
				<updated>2009-09-01T15:43:01Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Run in Create Webapp Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server=&lt;br /&gt;
This section describes how to run the server if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
* Make sure the server config file is correctly set up. I.e. don't forget to remove '.exe' for linux, make sure to select the 'F_code' directory if you compiled with finalization.&lt;br /&gt;
* Run&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Or to see a list of run arguments type instead&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Stop the server by typing&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a list of server commands type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server in EiffelStudio=&lt;br /&gt;
This section describes how to run the server withing EiffelStudio if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
# Launch estudio and compile the project $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf&lt;br /&gt;
# Go to the Execution -&amp;gt; Exceptions Handling dialog.  Check &amp;quot;Filter Exceptions?&amp;quot; and change DEVELOPER_EXCEPTION to &amp;quot;Ignore&amp;quot;.&lt;br /&gt;
# Open the Execution -&amp;gt; Execution Parameters dialog and set &amp;quot;config.srv&amp;quot; as argument (see below for more info about run arguments).&lt;br /&gt;
# Compile&lt;br /&gt;
# Fill in the [[Xebra Server Config File]]&lt;br /&gt;
# Run&lt;br /&gt;
# Browse to http://localhost/helloworld/. The server now translates, generates, compiles and finally runs the helloworld application.&lt;br /&gt;
&lt;br /&gt;
= Run in Create Webapp Mode=&lt;br /&gt;
&lt;br /&gt;
You can use the server as a tool to only translate, generate and compile a webapp. The application will then not act as a 'server'. Use the '-c' option for that matter.&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 $XEBRA_DEV/bin/xebra_server $XEBRA_DEV/conf/config.srv -d 6 -c $XEBRA_DEV/www/demoapplication/config.wapp&lt;br /&gt;
&lt;br /&gt;
You can interrupt and terminate anytime by hitting any key.&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
The server automatically launches the following modules:&lt;br /&gt;
* mod_http: Listens to requests from the http plugin (Apache Module or IIS7 Handler) on port 55001. These request are forwarded to the appropriate webapp.&lt;br /&gt;
* mod_console: Reads input from the console. The commands described below can be invoked. &lt;br /&gt;
* mod_cmd: Listens to command request from the webapps on port 55002.&lt;br /&gt;
&lt;br /&gt;
{{Note| The server can only be shut down by the servercontrol webapp if the mod_console already has been shut down manually from within the console! This problem is due to the uninteruptability of io.read_line}}&lt;br /&gt;
&lt;br /&gt;
=Webapps=&lt;br /&gt;
&lt;br /&gt;
==Managed and Unmanaged Webapps==&lt;br /&gt;
The server can handle two different types of webapps: managed and unmanaged. The attribute &amp;quot;managed_webapps&amp;quot; in the server config file specifies the path to the root of the managed webapps. On startup the server scans this path for webapp config files and loads them. Managed webapps are translated, generated, compiled and run automatically by the server. All managed webapps are run locally. Unmanaged webapps are specified under &amp;quot;unmanaged_webapps&amp;quot; in the server config file. These have to be managed manually by the user but can be run on any other machine. The xebra server application can be used as a tool to only translate, generate and compile a webapp by using the -c option.&lt;br /&gt;
&lt;br /&gt;
If the option -u was set, the server treats all managed webapps as unmanaged ones, i.e. it does not translate, compile and run the webapps but just tries to connect immediately. This should be used when a webapp is launched in estudio for debugging and the server should not try to run and shutdown the webapp.&lt;br /&gt;
&lt;br /&gt;
==Development Mode==&lt;br /&gt;
By default, a managed webapp is set to Development Mode which means that the server checks everytime a request was made if the webapp needs to be retranslated and compiled. This makes access to the webapp very slow. As soon as development of the webapp stopps, dev_mod should be set to off.&lt;br /&gt;
&lt;br /&gt;
==Fire off a webapp==&lt;br /&gt;
If the server crashed and therefore could not properly shut down all managed webapps, they will still be running when the server is relaunched. Hence, the socket will be occupied when the server tries to launch a webapp. Use the fire command to fire off a possibly running webapp. The fire command tries to directly connect to the webapp and send a shutdown signal regardless if the webapp process is owned by the server or not. This command is also available for unmanaged webapps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Config File=&lt;br /&gt;
* see [[Xebra Server Config File]]&lt;br /&gt;
&lt;br /&gt;
=Run Arguments=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 USAGE:&lt;br /&gt;
   xebra_server.exe &amp;lt;config_filename&amp;gt; [-d &amp;lt;debug_level&amp;gt;] [-u] [-c &amp;lt;Webapp config file&amp;gt;] [-v] [-nologo]&lt;br /&gt;
&lt;br /&gt;
OPTIONS:&lt;br /&gt;
   Options should be prefixed with: '-' or '/'&lt;br /&gt;
&lt;br /&gt;
   -d --debug_level  : Specifies a debug level.&lt;br /&gt;
                        1: Start and stop of overall application&lt;br /&gt;
                        2: Application configuration&lt;br /&gt;
                        3: Start and stop of main components&lt;br /&gt;
                        4: Information about tasks that are performed&lt;br /&gt;
                        5: Information about subtasks that are performed&lt;br /&gt;
                        6: Very verbose information about subtasks that are performed (Optional)&lt;br /&gt;
   -u --unmanaged    : If set, the server treats all managed webapps as unmanged webapps. (Optional)&lt;br /&gt;
   -c --create_webapp: With this switch the server can be used as a tool to translate, generate and compile the&lt;br /&gt;
                       specified webapp (Optional)&lt;br /&gt;
   -? --help         : Display usage information. (Optional)&lt;br /&gt;
   -v --version      : Displays version information. (Optional)&lt;br /&gt;
      --nologo       : Supresses copyright information. (Optional)&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS:&lt;br /&gt;
   &amp;lt;debug_level&amp;gt;       : The debug level (1-6)&lt;br /&gt;
   &amp;lt;Webapp config file&amp;gt;: The webapp config file&lt;br /&gt;
&lt;br /&gt;
NON-SWITCHED ARGUMENTS:&lt;br /&gt;
   &amp;lt;config_filename&amp;gt;: The path of the config.ini file to use.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Console Commands=&lt;br /&gt;
 - 'help':              Displays a list of commands&lt;br /&gt;
&lt;br /&gt;
===Server Control===&lt;br /&gt;
 - 'exit':               Shuts down the server.&lt;br /&gt;
 - 'reload':             Reloads the server configuration file.&lt;br /&gt;
 - 'shutdown_webapps':   Shuts down all webapps.&lt;br /&gt;
&lt;br /&gt;
===Modules===&lt;br /&gt;
 - 'mlaunch &amp;lt;name&amp;gt;':      Re-launches a server module.&lt;br /&gt;
 - 'modules':             Displays the available modules.&lt;br /&gt;
 - 'mshutdown &amp;lt;name&amp;gt;':    Shuts down a server module.&lt;br /&gt;
&lt;br /&gt;
=== Webapps===&lt;br /&gt;
 - 'clean &amp;lt;name&amp;gt;':        Cleans, re-translates, compiles and launches a webapp. (Managed webapp only)&lt;br /&gt;
 - 'dev &amp;lt;name&amp;gt;':          Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'dev_all':             Sets dev_mod to on on all webapps.&lt;br /&gt;
 - 'dev_off &amp;lt;name&amp;gt;':      Sets developing mode of a webapp to off. (Managed webapp only)&lt;br /&gt;
 - 'dev_off_all':         Sets dev_mod to off on all webapps.&lt;br /&gt;
 - 'dev_on &amp;lt;name&amp;gt;':       Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'disable &amp;lt;name&amp;gt;':      Disables a webapp.&lt;br /&gt;
 - 'enable &amp;lt;name&amp;gt;':       Enables a webapp.&lt;br /&gt;
 - 'fire &amp;lt;name&amp;gt;':         Sends shutdown signal directly to webapp.&lt;br /&gt;
 - 'shutdown &amp;lt;name&amp;gt;':     Shuts down a webapp. (Managed webapp only)&lt;br /&gt;
 - 'translate &amp;lt;name&amp;gt;':    Forces re-translation of webapp (without cleaning). (Managed webapp only)&lt;br /&gt;
 - 'webapps':             Displays the available webapps.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13399</id>
		<title>Xebra Server Administration</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13399"/>
				<updated>2009-09-01T15:42:20Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Run in Create Webapp Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server=&lt;br /&gt;
This section describes how to run the server if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
* Make sure the server config file is correctly set up. I.e. don't forget to remove '.exe' for linux, make sure to select the 'F_code' directory if you compiled with finalization.&lt;br /&gt;
* Run&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Or to see a list of run arguments type instead&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Stop the server by typing&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a list of server commands type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server in EiffelStudio=&lt;br /&gt;
This section describes how to run the server withing EiffelStudio if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
# Launch estudio and compile the project $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf&lt;br /&gt;
# Go to the Execution -&amp;gt; Exceptions Handling dialog.  Check &amp;quot;Filter Exceptions?&amp;quot; and change DEVELOPER_EXCEPTION to &amp;quot;Ignore&amp;quot;.&lt;br /&gt;
# Open the Execution -&amp;gt; Execution Parameters dialog and set &amp;quot;config.srv&amp;quot; as argument (see below for more info about run arguments).&lt;br /&gt;
# Compile&lt;br /&gt;
# Fill in the [[Xebra Server Config File]]&lt;br /&gt;
# Run&lt;br /&gt;
# Browse to http://localhost/helloworld/. The server now translates, generates, compiles and finally runs the helloworld application.&lt;br /&gt;
&lt;br /&gt;
= Run in Create Webapp Mode=&lt;br /&gt;
&lt;br /&gt;
You can use the server as a tool to only translate, generate and compile a webapp. The application will then not act as a 'server'. &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 $XEBRA_DEV/bin/xebra_server $XEBRA_DEV/conf/config.srv -d 6 -c $XEBRA_DEV/www/demoapplication/config.wapp&lt;br /&gt;
&lt;br /&gt;
You can interrupt and terminate anytime by hitting any key.&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
The server automatically launches the following modules:&lt;br /&gt;
* mod_http: Listens to requests from the http plugin (Apache Module or IIS7 Handler) on port 55001. These request are forwarded to the appropriate webapp.&lt;br /&gt;
* mod_console: Reads input from the console. The commands described below can be invoked. &lt;br /&gt;
* mod_cmd: Listens to command request from the webapps on port 55002.&lt;br /&gt;
&lt;br /&gt;
{{Note| The server can only be shut down by the servercontrol webapp if the mod_console already has been shut down manually from within the console! This problem is due to the uninteruptability of io.read_line}}&lt;br /&gt;
&lt;br /&gt;
=Webapps=&lt;br /&gt;
&lt;br /&gt;
==Managed and Unmanaged Webapps==&lt;br /&gt;
The server can handle two different types of webapps: managed and unmanaged. The attribute &amp;quot;managed_webapps&amp;quot; in the server config file specifies the path to the root of the managed webapps. On startup the server scans this path for webapp config files and loads them. Managed webapps are translated, generated, compiled and run automatically by the server. All managed webapps are run locally. Unmanaged webapps are specified under &amp;quot;unmanaged_webapps&amp;quot; in the server config file. These have to be managed manually by the user but can be run on any other machine. The xebra server application can be used as a tool to only translate, generate and compile a webapp by using the -c option.&lt;br /&gt;
&lt;br /&gt;
If the option -u was set, the server treats all managed webapps as unmanaged ones, i.e. it does not translate, compile and run the webapps but just tries to connect immediately. This should be used when a webapp is launched in estudio for debugging and the server should not try to run and shutdown the webapp.&lt;br /&gt;
&lt;br /&gt;
==Development Mode==&lt;br /&gt;
By default, a managed webapp is set to Development Mode which means that the server checks everytime a request was made if the webapp needs to be retranslated and compiled. This makes access to the webapp very slow. As soon as development of the webapp stopps, dev_mod should be set to off.&lt;br /&gt;
&lt;br /&gt;
==Fire off a webapp==&lt;br /&gt;
If the server crashed and therefore could not properly shut down all managed webapps, they will still be running when the server is relaunched. Hence, the socket will be occupied when the server tries to launch a webapp. Use the fire command to fire off a possibly running webapp. The fire command tries to directly connect to the webapp and send a shutdown signal regardless if the webapp process is owned by the server or not. This command is also available for unmanaged webapps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Config File=&lt;br /&gt;
* see [[Xebra Server Config File]]&lt;br /&gt;
&lt;br /&gt;
=Run Arguments=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 USAGE:&lt;br /&gt;
   xebra_server.exe &amp;lt;config_filename&amp;gt; [-d &amp;lt;debug_level&amp;gt;] [-u] [-c &amp;lt;Webapp config file&amp;gt;] [-v] [-nologo]&lt;br /&gt;
&lt;br /&gt;
OPTIONS:&lt;br /&gt;
   Options should be prefixed with: '-' or '/'&lt;br /&gt;
&lt;br /&gt;
   -d --debug_level  : Specifies a debug level.&lt;br /&gt;
                        1: Start and stop of overall application&lt;br /&gt;
                        2: Application configuration&lt;br /&gt;
                        3: Start and stop of main components&lt;br /&gt;
                        4: Information about tasks that are performed&lt;br /&gt;
                        5: Information about subtasks that are performed&lt;br /&gt;
                        6: Very verbose information about subtasks that are performed (Optional)&lt;br /&gt;
   -u --unmanaged    : If set, the server treats all managed webapps as unmanged webapps. (Optional)&lt;br /&gt;
   -c --create_webapp: With this switch the server can be used as a tool to translate, generate and compile the&lt;br /&gt;
                       specified webapp (Optional)&lt;br /&gt;
   -? --help         : Display usage information. (Optional)&lt;br /&gt;
   -v --version      : Displays version information. (Optional)&lt;br /&gt;
      --nologo       : Supresses copyright information. (Optional)&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS:&lt;br /&gt;
   &amp;lt;debug_level&amp;gt;       : The debug level (1-6)&lt;br /&gt;
   &amp;lt;Webapp config file&amp;gt;: The webapp config file&lt;br /&gt;
&lt;br /&gt;
NON-SWITCHED ARGUMENTS:&lt;br /&gt;
   &amp;lt;config_filename&amp;gt;: The path of the config.ini file to use.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Console Commands=&lt;br /&gt;
 - 'help':              Displays a list of commands&lt;br /&gt;
&lt;br /&gt;
===Server Control===&lt;br /&gt;
 - 'exit':               Shuts down the server.&lt;br /&gt;
 - 'reload':             Reloads the server configuration file.&lt;br /&gt;
 - 'shutdown_webapps':   Shuts down all webapps.&lt;br /&gt;
&lt;br /&gt;
===Modules===&lt;br /&gt;
 - 'mlaunch &amp;lt;name&amp;gt;':      Re-launches a server module.&lt;br /&gt;
 - 'modules':             Displays the available modules.&lt;br /&gt;
 - 'mshutdown &amp;lt;name&amp;gt;':    Shuts down a server module.&lt;br /&gt;
&lt;br /&gt;
=== Webapps===&lt;br /&gt;
 - 'clean &amp;lt;name&amp;gt;':        Cleans, re-translates, compiles and launches a webapp. (Managed webapp only)&lt;br /&gt;
 - 'dev &amp;lt;name&amp;gt;':          Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'dev_all':             Sets dev_mod to on on all webapps.&lt;br /&gt;
 - 'dev_off &amp;lt;name&amp;gt;':      Sets developing mode of a webapp to off. (Managed webapp only)&lt;br /&gt;
 - 'dev_off_all':         Sets dev_mod to off on all webapps.&lt;br /&gt;
 - 'dev_on &amp;lt;name&amp;gt;':       Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'disable &amp;lt;name&amp;gt;':      Disables a webapp.&lt;br /&gt;
 - 'enable &amp;lt;name&amp;gt;':       Enables a webapp.&lt;br /&gt;
 - 'fire &amp;lt;name&amp;gt;':         Sends shutdown signal directly to webapp.&lt;br /&gt;
 - 'shutdown &amp;lt;name&amp;gt;':     Shuts down a webapp. (Managed webapp only)&lt;br /&gt;
 - 'translate &amp;lt;name&amp;gt;':    Forces re-translation of webapp (without cleaning). (Managed webapp only)&lt;br /&gt;
 - 'webapps':             Displays the available webapps.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13396</id>
		<title>Xebra Server Administration</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Server_Administration&amp;diff=13396"/>
				<updated>2009-09-01T15:29:34Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server=&lt;br /&gt;
This section describes how to run the server if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
* Make sure the server config file is correctly set up. I.e. don't forget to remove '.exe' for linux, make sure to select the 'F_code' directory if you compiled with finalization.&lt;br /&gt;
* Run&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe config.srv&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Or to see a list of run arguments type instead&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs/xebra_server/F_code/xebra_server -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
EIFGENs\xebra_server\F_code\xebra_server.exe -help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Stop the server by typing&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a list of server commands type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
help&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Run Xebra Server in EiffelStudio=&lt;br /&gt;
This section describes how to run the server withing EiffelStudio if xebra was installed manually.&lt;br /&gt;
&lt;br /&gt;
# Launch estudio and compile the project $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf&lt;br /&gt;
# Go to the Execution -&amp;gt; Exceptions Handling dialog.  Check &amp;quot;Filter Exceptions?&amp;quot; and change DEVELOPER_EXCEPTION to &amp;quot;Ignore&amp;quot;.&lt;br /&gt;
# Open the Execution -&amp;gt; Execution Parameters dialog and set &amp;quot;config.srv&amp;quot; as argument (see below for more info about run arguments).&lt;br /&gt;
# Compile&lt;br /&gt;
# Fill in the [[Xebra Server Config File]]&lt;br /&gt;
# Run&lt;br /&gt;
# Browse to http://localhost/helloworld/. The server now translates, generates, compiles and finally runs the helloworld application.&lt;br /&gt;
&lt;br /&gt;
= Run in Create Webapp Mode=&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
The server automatically launches the following modules:&lt;br /&gt;
* mod_http: Listens to requests from the http plugin (Apache Module or IIS7 Handler) on port 55001. These request are forwarded to the appropriate webapp.&lt;br /&gt;
* mod_console: Reads input from the console. The commands described below can be invoked. &lt;br /&gt;
* mod_cmd: Listens to command request from the webapps on port 55002.&lt;br /&gt;
&lt;br /&gt;
{{Note| The server can only be shut down by the servercontrol webapp if the mod_console already has been shut down manually from within the console! This problem is due to the uninteruptability of io.read_line}}&lt;br /&gt;
&lt;br /&gt;
=Webapps=&lt;br /&gt;
&lt;br /&gt;
==Managed and Unmanaged Webapps==&lt;br /&gt;
The server can handle two different types of webapps: managed and unmanaged. The attribute &amp;quot;managed_webapps&amp;quot; in the server config file specifies the path to the root of the managed webapps. On startup the server scans this path for webapp config files and loads them. Managed webapps are translated, generated, compiled and run automatically by the server. All managed webapps are run locally. Unmanaged webapps are specified under &amp;quot;unmanaged_webapps&amp;quot; in the server config file. These have to be managed manually by the user but can be run on any other machine. The xebra server application can be used as a tool to only translate, generate and compile a webapp by using the -c option.&lt;br /&gt;
&lt;br /&gt;
If the option -u was set, the server treats all managed webapps as unmanaged ones, i.e. it does not translate, compile and run the webapps but just tries to connect immediately. This should be used when a webapp is launched in estudio for debugging and the server should not try to run and shutdown the webapp.&lt;br /&gt;
&lt;br /&gt;
==Development Mode==&lt;br /&gt;
By default, a managed webapp is set to Development Mode which means that the server checks everytime a request was made if the webapp needs to be retranslated and compiled. This makes access to the webapp very slow. As soon as development of the webapp stopps, dev_mod should be set to off.&lt;br /&gt;
&lt;br /&gt;
==Fire off a webapp==&lt;br /&gt;
If the server crashed and therefore could not properly shut down all managed webapps, they will still be running when the server is relaunched. Hence, the socket will be occupied when the server tries to launch a webapp. Use the fire command to fire off a possibly running webapp. The fire command tries to directly connect to the webapp and send a shutdown signal regardless if the webapp process is owned by the server or not. This command is also available for unmanaged webapps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Config File=&lt;br /&gt;
* see [[Xebra Server Config File]]&lt;br /&gt;
&lt;br /&gt;
=Run Arguments=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 USAGE:&lt;br /&gt;
   xebra_server.exe &amp;lt;config_filename&amp;gt; [-d &amp;lt;debug_level&amp;gt;] [-u] [-c &amp;lt;Webapp config file&amp;gt;] [-v] [-nologo]&lt;br /&gt;
&lt;br /&gt;
OPTIONS:&lt;br /&gt;
   Options should be prefixed with: '-' or '/'&lt;br /&gt;
&lt;br /&gt;
   -d --debug_level  : Specifies a debug level.&lt;br /&gt;
                        1: Start and stop of overall application&lt;br /&gt;
                        2: Application configuration&lt;br /&gt;
                        3: Start and stop of main components&lt;br /&gt;
                        4: Information about tasks that are performed&lt;br /&gt;
                        5: Information about subtasks that are performed&lt;br /&gt;
                        6: Very verbose information about subtasks that are performed (Optional)&lt;br /&gt;
   -u --unmanaged    : If set, the server treats all managed webapps as unmanged webapps. (Optional)&lt;br /&gt;
   -c --create_webapp: With this switch the server can be used as a tool to translate, generate and compile the&lt;br /&gt;
                       specified webapp (Optional)&lt;br /&gt;
   -? --help         : Display usage information. (Optional)&lt;br /&gt;
   -v --version      : Displays version information. (Optional)&lt;br /&gt;
      --nologo       : Supresses copyright information. (Optional)&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS:&lt;br /&gt;
   &amp;lt;debug_level&amp;gt;       : The debug level (1-6)&lt;br /&gt;
   &amp;lt;Webapp config file&amp;gt;: The webapp config file&lt;br /&gt;
&lt;br /&gt;
NON-SWITCHED ARGUMENTS:&lt;br /&gt;
   &amp;lt;config_filename&amp;gt;: The path of the config.ini file to use.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Console Commands=&lt;br /&gt;
 - 'help':              Displays a list of commands&lt;br /&gt;
&lt;br /&gt;
===Server Control===&lt;br /&gt;
 - 'exit':               Shuts down the server.&lt;br /&gt;
 - 'reload':             Reloads the server configuration file.&lt;br /&gt;
 - 'shutdown_webapps':   Shuts down all webapps.&lt;br /&gt;
&lt;br /&gt;
===Modules===&lt;br /&gt;
 - 'mlaunch &amp;lt;name&amp;gt;':      Re-launches a server module.&lt;br /&gt;
 - 'modules':             Displays the available modules.&lt;br /&gt;
 - 'mshutdown &amp;lt;name&amp;gt;':    Shuts down a server module.&lt;br /&gt;
&lt;br /&gt;
=== Webapps===&lt;br /&gt;
 - 'clean &amp;lt;name&amp;gt;':        Cleans, re-translates, compiles and launches a webapp. (Managed webapp only)&lt;br /&gt;
 - 'dev &amp;lt;name&amp;gt;':          Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'dev_all':             Sets dev_mod to on on all webapps.&lt;br /&gt;
 - 'dev_off &amp;lt;name&amp;gt;':      Sets developing mode of a webapp to off. (Managed webapp only)&lt;br /&gt;
 - 'dev_off_all':         Sets dev_mod to off on all webapps.&lt;br /&gt;
 - 'dev_on &amp;lt;name&amp;gt;':       Sets developing mode of a webapp to on. (Managed webapp only)&lt;br /&gt;
 - 'disable &amp;lt;name&amp;gt;':      Disables a webapp.&lt;br /&gt;
 - 'enable &amp;lt;name&amp;gt;':       Enables a webapp.&lt;br /&gt;
 - 'fire &amp;lt;name&amp;gt;':         Sends shutdown signal directly to webapp.&lt;br /&gt;
 - 'shutdown &amp;lt;name&amp;gt;':     Shuts down a webapp. (Managed webapp only)&lt;br /&gt;
 - 'translate &amp;lt;name&amp;gt;':    Forces re-translation of webapp (without cleaning). (Managed webapp only)&lt;br /&gt;
 - 'webapps':             Displays the available webapps.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Tutorial&amp;diff=13395</id>
		<title>Xebra Tutorial</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Tutorial&amp;diff=13395"/>
				<updated>2009-09-01T15:24:02Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Server=&lt;br /&gt;
* Run Xebra Server: [[Xebra Server Administration]]&lt;br /&gt;
&lt;br /&gt;
=Webapp=&lt;br /&gt;
* Create a webapp: [[Xebra Create Webapps|Create Webapps]]&lt;br /&gt;
* Debug a webapp: [[Xebra Debug Webapp|Debug Webapp]]&lt;br /&gt;
* Write a xeb file: [[Xebra Write Xeb File|Write Xeb File]]&lt;br /&gt;
* Add XML-RPC support ((xml_rpc is currently disabled)): [[Xebra Create XML-RPC Webapp]]&lt;br /&gt;
&lt;br /&gt;
=Extend Xebra=&lt;br /&gt;
*Create your own tag libraries: [[Xebra Create Tag Library|Create custom tag library]]&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Tutorial&amp;diff=13394</id>
		<title>Xebra Tutorial</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Tutorial&amp;diff=13394"/>
				<updated>2009-09-01T15:23:51Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Webapp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Server=&lt;br /&gt;
* Run Xebra Server: [[Xebra Server Administration]]&lt;br /&gt;
&lt;br /&gt;
=Webapp=&lt;br /&gt;
* Create a webapp: [[Xebra Create Webapps|Create Webapps]]&lt;br /&gt;
* Debug a webapp: [[Xebra Debug Webapp|Debug Webapp]]&lt;br /&gt;
* Write a xeb file: [[Xebra Write Xeb File|Write Xeb File]]&lt;br /&gt;
* Add XML-RPC support ((xml_rpc is currently disabled)): [[Xebra Create XML-RPC Webapp]]&lt;br /&gt;
&lt;br /&gt;
=Extend Xebra=&lt;br /&gt;
*Create your own tag libraries: [[Xebra Create Tag Library|Create custom tag library]]&lt;br /&gt;
&lt;br /&gt;
=Apache=&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Create_Webapps&amp;diff=13393</id>
		<title>Xebra Create Webapps</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Create_Webapps&amp;diff=13393"/>
				<updated>2009-09-01T15:23:15Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Add support for XML-RPC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
=Create a new webapp=&lt;br /&gt;
&lt;br /&gt;
# Setup an initial Eiffel project for your webapp. For that matter you can use this [https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/tools/scripts/linux/create_website.sh script] which creates all necessary files. Make sure to assign a free port to your webapp (see also [[Xebra Webapp Config File]]). The webapp has to be created in the same folder that is specified in the servers config file at unmanaged_webapps. See [[Xebra Server Config File]] for more information.&lt;br /&gt;
# Run the server (see [[Xebra Server Administration]]) and browse to http://localhost:55000/yourwebapp. The server will translate and compile your webapp. Once compiled, you should see a page displaying &amp;quot;Yourwebapp works!&amp;quot;.&lt;br /&gt;
# Create xeb files for your webapp. See [[Xebra Documentation|Xebra Tag Libraries]] for more info about xeb tags (see also [[Xebra Write Xeb File | Tutorial]]). Note that you have to let the server re-translate your webapp everytime you change xeb-files or add new xeb-files. This can be done by just pressing F5 in the browser. The server automatically detects that the webapp has to be re-translated if it is set to Development Mode (see [[Xebra Server Administration]] for more info).&lt;br /&gt;
# Create the eiffel classes.&lt;br /&gt;
&lt;br /&gt;
=Add support for XML-RPC=&lt;br /&gt;
* [[Xebra Create XML-RPC Webapp]] (xml_rpc is currently disabled)&lt;br /&gt;
&lt;br /&gt;
=Manually translate a webapp=&lt;br /&gt;
To manually translate, generate and compile your webapp use the following commands&lt;br /&gt;
&lt;br /&gt;
Linux&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd $XEBRA_DEV/httpd/htdocs/yourwebapp/&lt;br /&gt;
&lt;br /&gt;
#Translate&lt;br /&gt;
$XEBRA_DEV/eiffel_projects/xebra_translator/EIFGENs/xebra_translator/W_code/xebra_translator -n yourwebapp -i . -o . -l $XEBRA_DEV/eiffel_projects/xebra_translator&lt;br /&gt;
&lt;br /&gt;
#Compile servlet_gen&lt;br /&gt;
ec -experiment -config .generated/servlet_gen/servlet_gen.ecf -target servlet_gen -c_compile -stop&lt;br /&gt;
&lt;br /&gt;
#Execute servlet_gen&lt;br /&gt;
.generated/servlet_gen/EIFGENs/servlet_gen/W_code/servlet_gen -o .&lt;br /&gt;
&lt;br /&gt;
#Compile webapp&lt;br /&gt;
ec -experiment -config yourwebapp.ecf -target yourwebapp -c_compile -stop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd %XEBRA_DEV%\httpd\htdocs\yourwebapp\&lt;br /&gt;
&lt;br /&gt;
#Translate&lt;br /&gt;
%XEBRA_DEV%\eiffel_projects\xebra_translator\EIFGENs\xebra_translator\W_code\xebra_translator -n yourwebapp -i . -o . -l %XEBRA_DEV%\eiffel_projects\xebra_translator&lt;br /&gt;
&lt;br /&gt;
#Compile servlet_gen&lt;br /&gt;
ec -experiment -config .generated\servlet_gen\servlet_gen.ecf -target servlet_gen -c_compile -stop&lt;br /&gt;
&lt;br /&gt;
#Execute servlet_gen&lt;br /&gt;
.generated\servlet_gen\EIFGENs\servlet_gen\W_code\servlet_gen.exe .&lt;br /&gt;
&lt;br /&gt;
#Compile webapp&lt;br /&gt;
ec -experiment -config yourwebapp.ecf -target yourwebapp -c_compile -stop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionally, you can add the &amp;quot;-clean&amp;quot; option for ec and the &amp;quot;-f&amp;quot; option for translator to force a complete recompilation.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Create_Webapps&amp;diff=13392</id>
		<title>Xebra Create Webapps</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Create_Webapps&amp;diff=13392"/>
				<updated>2009-09-01T15:22:45Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Create a new webapp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
=Create a new webapp=&lt;br /&gt;
&lt;br /&gt;
# Setup an initial Eiffel project for your webapp. For that matter you can use this [https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/tools/scripts/linux/create_website.sh script] which creates all necessary files. Make sure to assign a free port to your webapp (see also [[Xebra Webapp Config File]]). The webapp has to be created in the same folder that is specified in the servers config file at unmanaged_webapps. See [[Xebra Server Config File]] for more information.&lt;br /&gt;
# Run the server (see [[Xebra Server Administration]]) and browse to http://localhost:55000/yourwebapp. The server will translate and compile your webapp. Once compiled, you should see a page displaying &amp;quot;Yourwebapp works!&amp;quot;.&lt;br /&gt;
# Create xeb files for your webapp. See [[Xebra Documentation|Xebra Tag Libraries]] for more info about xeb tags (see also [[Xebra Write Xeb File | Tutorial]]). Note that you have to let the server re-translate your webapp everytime you change xeb-files or add new xeb-files. This can be done by just pressing F5 in the browser. The server automatically detects that the webapp has to be re-translated if it is set to Development Mode (see [[Xebra Server Administration]] for more info).&lt;br /&gt;
# Create the eiffel classes.&lt;br /&gt;
&lt;br /&gt;
=Add support for XML-RPC=&lt;br /&gt;
* [[Xebra Create XML-RPC Webapp]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Manually translate a webapp=&lt;br /&gt;
To manually translate, generate and compile your webapp use the following commands&lt;br /&gt;
&lt;br /&gt;
Linux&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd $XEBRA_DEV/httpd/htdocs/yourwebapp/&lt;br /&gt;
&lt;br /&gt;
#Translate&lt;br /&gt;
$XEBRA_DEV/eiffel_projects/xebra_translator/EIFGENs/xebra_translator/W_code/xebra_translator -n yourwebapp -i . -o . -l $XEBRA_DEV/eiffel_projects/xebra_translator&lt;br /&gt;
&lt;br /&gt;
#Compile servlet_gen&lt;br /&gt;
ec -experiment -config .generated/servlet_gen/servlet_gen.ecf -target servlet_gen -c_compile -stop&lt;br /&gt;
&lt;br /&gt;
#Execute servlet_gen&lt;br /&gt;
.generated/servlet_gen/EIFGENs/servlet_gen/W_code/servlet_gen -o .&lt;br /&gt;
&lt;br /&gt;
#Compile webapp&lt;br /&gt;
ec -experiment -config yourwebapp.ecf -target yourwebapp -c_compile -stop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd %XEBRA_DEV%\httpd\htdocs\yourwebapp\&lt;br /&gt;
&lt;br /&gt;
#Translate&lt;br /&gt;
%XEBRA_DEV%\eiffel_projects\xebra_translator\EIFGENs\xebra_translator\W_code\xebra_translator -n yourwebapp -i . -o . -l %XEBRA_DEV%\eiffel_projects\xebra_translator&lt;br /&gt;
&lt;br /&gt;
#Compile servlet_gen&lt;br /&gt;
ec -experiment -config .generated\servlet_gen\servlet_gen.ecf -target servlet_gen -c_compile -stop&lt;br /&gt;
&lt;br /&gt;
#Execute servlet_gen&lt;br /&gt;
.generated\servlet_gen\EIFGENs\servlet_gen\W_code\servlet_gen.exe .&lt;br /&gt;
&lt;br /&gt;
#Compile webapp&lt;br /&gt;
ec -experiment -config yourwebapp.ecf -target yourwebapp -c_compile -stop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionally, you can add the &amp;quot;-clean&amp;quot; option for ec and the &amp;quot;-f&amp;quot; option for translator to force a complete recompilation.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13391</id>
		<title>Xebra Installation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13391"/>
				<updated>2009-09-01T15:16:12Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Windows Installer (NEW) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installations=&lt;br /&gt;
===There are two ways to install Xebra:===&lt;br /&gt;
*Automatic&lt;br /&gt;
** A script for Ubuntu 9.04 that sets up xebra and also installs apache&lt;br /&gt;
** A Windows Installer that contains xebra and apache and sets it up&lt;br /&gt;
*Manual (Step-by-step guide)&lt;br /&gt;
** Ubuntu 9.04 with Apache&lt;br /&gt;
** Windows with Apache&lt;br /&gt;
** Windows with IIS7&lt;br /&gt;
&lt;br /&gt;
===A few notes===&lt;br /&gt;
*All of xebra is compiled with the -experiment option. We haven't tested to compile anything in non-experimental mode.&lt;br /&gt;
*Currently (rev 80407), for all types of installation you have to adapt a files in ISE_LIBRARY to make it work since there is a bug in the eiffel argument parser library: In the class ''ISE_EIFFEL/experimental/library/argument_parser/parsers/argument_base_parser.e'' in the feature ''arguments: ARRAY [STRING]'' replace the line &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make (1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make_filled (&amp;quot;&amp;quot;, 1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ubuntu Installation Script =&lt;br /&gt;
{{Note| This script was tested with Xebra revision 80545, EiffelStudio 6.5.8.294 and Ubuntu 9.04 (August 2009)}}&lt;br /&gt;
&lt;br /&gt;
Run this script (the current revision):&lt;br /&gt;
https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/tools/scripts/linux/install_xebra_ubuntu.sh&lt;br /&gt;
&lt;br /&gt;
The script expects $XEBRA_DEV, $ISE_EIFFEL and $ISE_LIBRARY to be set. Please make sure ''svn'', ''wget'', ''vim'' and ''tar'' are installed. Also, the path to your eiffel studio bin folder should be included in your PATH variable.&lt;br /&gt;
&lt;br /&gt;
The script will checkout xebra to $XEBRA_DEV, compile the server and translator, download, install and configure apache to $XEBRA_DEV/apache. Apache will be configured to listen on port 55000 (instead of 80) in order to not interfere with an already installed http server. After the script was successfully run you need to set $XEBRA_LIBRARY to $XEBRA_DEV/library. &lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
 $XEBRA_DEV/bin/launch_apache.sh&lt;br /&gt;
 $XEBRA_DEV/bin/launch_server.sh&lt;br /&gt;
and then browse to&lt;br /&gt;
 http://localhost:55000/helloworld&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a while to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Windows Installer =&lt;br /&gt;
{{Note| This installer was tested with Xebra revision 80545, EiffelStudio 6.5.8.294, on Windows XP SP2}}&lt;br /&gt;
&lt;br /&gt;
Run the installer at:&lt;br /&gt;
&lt;br /&gt;
https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/framework/web/xebra/tools/installer/win/innosetup/output/XebraSetup.exe&lt;br /&gt;
&lt;br /&gt;
To test your installation click &amp;quot;Launch Xebra Full&amp;quot; in the &amp;quot;Eiffel Xebra&amp;quot; folder in your start menu. This will launch apache and the xebra server and it will open &amp;quot;localhost:55000/helloworld&amp;quot; in your browser. &lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a while to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Manual Installation=&lt;br /&gt;
This guide expects Eiffel Studio to be installed to $ISE_EIFFEL and the source to be checked out to $EIFFEL_SRC (only the folder 'framework' is needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Checkout Xebra==&lt;br /&gt;
* Define $XEBRA_DEV and checkout xebra from https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/ to $XEBRA_DEV&lt;br /&gt;
* Define $XEBRA_LIBRARY to $XEBRA_DEV/eiffel_projects/library&lt;br /&gt;
&lt;br /&gt;
==Install HTTP Server==&lt;br /&gt;
=== Ubuntu 9.04 with Apache 2.2.11 ===&lt;br /&gt;
Note:&lt;br /&gt;
* Mod_xebra does currently not run with the apache distribution that comes with ubuntu. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache unix source from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Extract&lt;br /&gt;
* Define $APACHE2 where you want to install apache, e.g. to $XEBRA_DEV/apache&lt;br /&gt;
* Run the following commands in the extracted folder:&lt;br /&gt;
 CFLAGS=&amp;quot;-ggdb&amp;quot;&lt;br /&gt;
 ./configure --prefix=$APACHE2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 $APACHE2/bin/apxs -c mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 $APACHE2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Add the following lines to $APACHE2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''/tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart apache&lt;br /&gt;
 $APACHE2/bin/apachectl restart&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tail -f $APACHE2/logs/error_log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Windows with Apache 2.2.11===&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
* If mod_xebra.so was compiled with VS2008, it has a delay-load dependency on the Visual C++ 9.0 debug runtime library, msvcr90d.dll.  This dll comes with Visual Studio 2008 C++ including the free Visual Studio 2008 C++ Express edition.  This file can be copied in to the System32 directory.  If this DLL is not found you will get an Apache error '''Cannot load C:/Xebra/httpd/modules/mod_xebra.so into server: This application has failed to start because the application configuration is incorrect.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache windows binary from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Install (Choose Custom Installation and install Build Headers and Libraries as well)&lt;br /&gt;
* Copy $XEBRA_DEV/c_projects/apache_mod_xebra/mod_xebra.so to your Apache2.2\modules folder.&lt;br /&gt;
**Note: If you use a newer version of apache than 2.2.11 please compile mod_xebra yourself to avoid any possible errors, see [[Xebra Apache Module Windows]].&lt;br /&gt;
* Add the following lines to Apache2.2\conf\httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;c:\tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''c:\tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart Apache&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see the a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
&lt;br /&gt;
===Windows with IIS7===&lt;br /&gt;
&lt;br /&gt;
* Open %XEBRA_DEV%\c_projects\iis_xebra_handler\XebraEventSourceInstaller\XebraEventSourceInstaller.sln in VS2008&lt;br /&gt;
* Compile and run (This will install the ''XebraHandler'' source to the Windows Event Log. This cannot be performed by the handler because it lacks permissions.)&lt;br /&gt;
* (Optional) Open %XEBRA_DEV%\c_projects\iis_xebra_handler\Xebra.sln in VS2008 and compile&lt;br /&gt;
* Create a new site in IIS and point it to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\web.config to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\bin to %XEBRA_DEV%\www&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X with Apache ===&lt;br /&gt;
Note:&lt;br /&gt;
* If you're using the version of EiffelStudio from MacPorts, environment variables must be set within the startup script.  /Applications/MacPorts/Eiffel64/EiffelStudio/Contents/Resources/EiffelLauncher&lt;br /&gt;
* Save yourself a ton of hassle and just sudo chmod -R 777 * both the $ISE_EIFFEL and $EIFFEL_SRC directories.&lt;br /&gt;
&lt;br /&gt;
* Get Apache V2 from Mac Ports&lt;br /&gt;
  sudo port install apache2&lt;br /&gt;
* Copy $XEBRA_DEV/www/* to /opt/local/apache2/htdocs&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -c -Wc,-ggdb -I$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Prepare to edit the protected httpd.conf file by running the command:&lt;br /&gt;
  sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit&lt;br /&gt;
  Within TextEdit, which now is running under sudo, open /opt/local/apache2/conf/httpd.conf&lt;br /&gt;
* Add the following lines to /opt/local/apache2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory /tmp or choose another temp upload directory.&lt;br /&gt;
* The default MacPorts apache install will listen on port 80&lt;br /&gt;
* Restart apache &lt;br /&gt;
 sudo /opt/local/apache2/bin/apachectl restart&lt;br /&gt;
* Browse to http://localhost/test.xeb. You should see a message saying &amp;quot;Cannot connect to XebraServer. See apache error log.&amp;quot;&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
 tail -f $APACHE2/logs/error_log&lt;br /&gt;
&lt;br /&gt;
==Compile the Translator and Server ==&lt;br /&gt;
* First we need to compile the xebra precompile library:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/library/xebra_precompile/xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path $XEBRA_DEV/eiffel_projects/library/xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\library\xebra_precompile\xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path %XEBRA_DEV%\eiffel_projects\library\xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Then run:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_translator/xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_translator\xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_server\xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test the installation==&lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
&lt;br /&gt;
'''Windows'''&lt;br /&gt;
 %XEBRA_DEV%\apache\bin\httpd.exe&lt;br /&gt;
 %XEBRA_DEV%\eiffel_projects\xebra_server\EIFGENs\xebra_server\F_code\xebra_server.exe %XEBRA_DEV%\eiffel_projects\xebra_server\config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
 $XEBRA_DEV/apache/bin/httpd&lt;br /&gt;
 $XEBRA_DEV/eiffel_projects/xebra_server/EIFGENs/xebra_server/F_code/xebra_server $XEBRA_DEV/eiffel_projects/xebra_server/config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
and then open&lt;br /&gt;
 http://localhost/helloworld&lt;br /&gt;
in your web browser.&lt;br /&gt;
&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a minute to do so the first time. While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13390</id>
		<title>Xebra Installation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Installation&amp;diff=13390"/>
				<updated>2009-09-01T15:15:31Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Ubuntu Installation Script (New) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installations=&lt;br /&gt;
===There are two ways to install Xebra:===&lt;br /&gt;
*Automatic&lt;br /&gt;
** A script for Ubuntu 9.04 that sets up xebra and also installs apache&lt;br /&gt;
** A Windows Installer that contains xebra and apache and sets it up&lt;br /&gt;
*Manual (Step-by-step guide)&lt;br /&gt;
** Ubuntu 9.04 with Apache&lt;br /&gt;
** Windows with Apache&lt;br /&gt;
** Windows with IIS7&lt;br /&gt;
&lt;br /&gt;
===A few notes===&lt;br /&gt;
*All of xebra is compiled with the -experiment option. We haven't tested to compile anything in non-experimental mode.&lt;br /&gt;
*Currently (rev 80407), for all types of installation you have to adapt a files in ISE_LIBRARY to make it work since there is a bug in the eiffel argument parser library: In the class ''ISE_EIFFEL/experimental/library/argument_parser/parsers/argument_base_parser.e'' in the feature ''arguments: ARRAY [STRING]'' replace the line &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make (1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
create Result.make_filled (&amp;quot;&amp;quot;, 1, l_result.count)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ubuntu Installation Script =&lt;br /&gt;
{{Note| This script was tested with Xebra revision 80545, EiffelStudio 6.5.8.294 and Ubuntu 9.04 (August 2009)}}&lt;br /&gt;
&lt;br /&gt;
Run this script (the current revision):&lt;br /&gt;
https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/tools/scripts/linux/install_xebra_ubuntu.sh&lt;br /&gt;
&lt;br /&gt;
The script expects $XEBRA_DEV, $ISE_EIFFEL and $ISE_LIBRARY to be set. Please make sure ''svn'', ''wget'', ''vim'' and ''tar'' are installed. Also, the path to your eiffel studio bin folder should be included in your PATH variable.&lt;br /&gt;
&lt;br /&gt;
The script will checkout xebra to $XEBRA_DEV, compile the server and translator, download, install and configure apache to $XEBRA_DEV/apache. Apache will be configured to listen on port 55000 (instead of 80) in order to not interfere with an already installed http server. After the script was successfully run you need to set $XEBRA_LIBRARY to $XEBRA_DEV/library. &lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
 $XEBRA_DEV/bin/launch_apache.sh&lt;br /&gt;
 $XEBRA_DEV/bin/launch_server.sh&lt;br /&gt;
and then browse to&lt;br /&gt;
 http://localhost:55000/helloworld&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a while to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Windows Installer (NEW)=&lt;br /&gt;
{{Note| This installer was tested with Xebra revision 80407, EiffelStudio 6.5.8.294, on Windows XP SP2}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run the installer at:&lt;br /&gt;
&lt;br /&gt;
https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/framework/web/xebra/tools/installer/win/innosetup/output/XebraSetup.exe&lt;br /&gt;
&lt;br /&gt;
To test your installation click &amp;quot;Launch Xebra Full&amp;quot; in the &amp;quot;Eiffel Xebra&amp;quot; folder in your start menu. This will launch apache and the xebra server and it will open &amp;quot;localhost:55000/helloworld&amp;quot; in your browser. &lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a minute to do so the first time (If you want to see what's happening type 'debug_level 6' in the server console). While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=Manual Installation=&lt;br /&gt;
This guide expects Eiffel Studio to be installed to $ISE_EIFFEL and the source to be checked out to $EIFFEL_SRC (only the folder 'framework' is needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Checkout Xebra==&lt;br /&gt;
* Define $XEBRA_DEV and checkout xebra from https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/ to $XEBRA_DEV&lt;br /&gt;
* Define $XEBRA_LIBRARY to $XEBRA_DEV/eiffel_projects/library&lt;br /&gt;
&lt;br /&gt;
==Install HTTP Server==&lt;br /&gt;
=== Ubuntu 9.04 with Apache 2.2.11 ===&lt;br /&gt;
Note:&lt;br /&gt;
* Mod_xebra does currently not run with the apache distribution that comes with ubuntu. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache unix source from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Extract&lt;br /&gt;
* Define $APACHE2 where you want to install apache, e.g. to $XEBRA_DEV/apache&lt;br /&gt;
* Run the following commands in the extracted folder:&lt;br /&gt;
 CFLAGS=&amp;quot;-ggdb&amp;quot;&lt;br /&gt;
 ./configure --prefix=$APACHE2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 $APACHE2/bin/apxs -c mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 $APACHE2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Add the following lines to $APACHE2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''/tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart apache&lt;br /&gt;
 $APACHE2/bin/apachectl restart&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tail -f $APACHE2/logs/error_log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Windows with Apache 2.2.11===&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
* If mod_xebra.so was compiled with VS2008, it has a delay-load dependency on the Visual C++ 9.0 debug runtime library, msvcr90d.dll.  This dll comes with Visual Studio 2008 C++ including the free Visual Studio 2008 C++ Express edition.  This file can be copied in to the System32 directory.  If this DLL is not found you will get an Apache error '''Cannot load C:/Xebra/httpd/modules/mod_xebra.so into server: This application has failed to start because the application configuration is incorrect.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download apache windows binary from http://httpd.apache.org/download.cgi&lt;br /&gt;
* Install (Choose Custom Installation and install Build Headers and Libraries as well)&lt;br /&gt;
* Copy $XEBRA_DEV/c_projects/apache_mod_xebra/mod_xebra.so to your Apache2.2\modules folder.&lt;br /&gt;
**Note: If you use a newer version of apache than 2.2.11 please compile mod_xebra yourself to avoid any possible errors, see [[Xebra Apache Module Windows]].&lt;br /&gt;
* Add the following lines to Apache2.2\conf\httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;c:\tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory ''c:\tmp'' or choose another temp upload directory.&lt;br /&gt;
* Restart Apache&lt;br /&gt;
* Browse to ''http://localhost/test.xeb''. You should see the a message saying ''Cannot connect to XebraServer. See apache error log.''&lt;br /&gt;
&lt;br /&gt;
===Windows with IIS7===&lt;br /&gt;
&lt;br /&gt;
* Open %XEBRA_DEV%\c_projects\iis_xebra_handler\XebraEventSourceInstaller\XebraEventSourceInstaller.sln in VS2008&lt;br /&gt;
* Compile and run (This will install the ''XebraHandler'' source to the Windows Event Log. This cannot be performed by the handler because it lacks permissions.)&lt;br /&gt;
* (Optional) Open %XEBRA_DEV%\c_projects\iis_xebra_handler\Xebra.sln in VS2008 and compile&lt;br /&gt;
* Create a new site in IIS and point it to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\web.config to %XEBRA_DEV%\www&lt;br /&gt;
* Copy %XEBRA_DEV%\c_projects\iis_xebra_handler\website\bin to %XEBRA_DEV%\www&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X with Apache ===&lt;br /&gt;
Note:&lt;br /&gt;
* If you're using the version of EiffelStudio from MacPorts, environment variables must be set within the startup script.  /Applications/MacPorts/Eiffel64/EiffelStudio/Contents/Resources/EiffelLauncher&lt;br /&gt;
* Save yourself a ton of hassle and just sudo chmod -R 777 * both the $ISE_EIFFEL and $EIFFEL_SRC directories.&lt;br /&gt;
&lt;br /&gt;
* Get Apache V2 from Mac Ports&lt;br /&gt;
  sudo port install apache2&lt;br /&gt;
* Copy $XEBRA_DEV/www/* to /opt/local/apache2/htdocs&lt;br /&gt;
* Compile the module by running&lt;br /&gt;
 cd $XEBRA_DEV/c_projects/apache_mod_xebra&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -c -Wc,-ggdb -I$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include mod_xebra.c mod_xebra.h&lt;br /&gt;
* Install the module to apache by running&lt;br /&gt;
 sudo /opt/local/apache2/bin/apxs -i mod_xebra.la&lt;br /&gt;
* Prepare to edit the protected httpd.conf file by running the command:&lt;br /&gt;
  sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit&lt;br /&gt;
  Within TextEdit, which now is running under sudo, open /opt/local/apache2/conf/httpd.conf&lt;br /&gt;
* Add the following lines to /opt/local/apache2/conf/httpd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#Xebra Module&lt;br /&gt;
LoadModule xebra_module modules/mod_xebra.so&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfModule xebra_module&amp;gt;&lt;br /&gt;
  AddHandler mod_xebra .xeb&lt;br /&gt;
  AddHandler mod_xebra .xrpc&lt;br /&gt;
  XebraServer_port 55001&lt;br /&gt;
  XebraServer_host &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
  XebraServer_max_upload_size 10000000&lt;br /&gt;
  XebraServer_upload_path &amp;quot;/tmp&amp;quot;&lt;br /&gt;
  DirectoryIndex index.xeb&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;\.(ini|e|ecf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
 &amp;lt;Directory ~ &amp;quot;EIFGENs&amp;quot;&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Deny from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Also in httpd.conf, change ''DocumentRoot'' to ''{path to xebra}\www'' and don't forget the directory options below the line ''# This should be changed to whatever you set DocumentRoot to.''&lt;br /&gt;
* Create the directory /tmp or choose another temp upload directory.&lt;br /&gt;
* The default MacPorts apache install will listen on port 80&lt;br /&gt;
* Restart apache &lt;br /&gt;
 sudo /opt/local/apache2/bin/apachectl restart&lt;br /&gt;
* Browse to http://localhost/test.xeb. You should see a message saying &amp;quot;Cannot connect to XebraServer. See apache error log.&amp;quot;&lt;br /&gt;
* Hint: keep an eye on the apache error log &lt;br /&gt;
 tail -f $APACHE2/logs/error_log&lt;br /&gt;
&lt;br /&gt;
==Compile the Translator and Server ==&lt;br /&gt;
* First we need to compile the xebra precompile library:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/library/xebra_precompile/xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path $XEBRA_DEV/eiffel_projects/library/xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\library\xebra_precompile\xebra_precompile.ecf -target xebra_precompile -c_compile -clean -precompile -project_path %XEBRA_DEV%\eiffel_projects\library\xebra_precompile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Then run:&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_translator/xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config $XEBRA_DEV/eiffel_projects/xebra_server/xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path $XEBRA_DEV/eiffel_projects/xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Windows'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_translator\xebra_translator.ecf -target xebra_translator -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_translator&lt;br /&gt;
&lt;br /&gt;
ec -experiment -config %XEBRA_DEV%\eiffel_projects\xebra_server\xebra_server.ecf -target xebra_server -c_compile -clean -finalize -project_path %XEBRA_DEV%\eiffel_projects\xebra_server&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test the installation==&lt;br /&gt;
&lt;br /&gt;
To test you installation run&lt;br /&gt;
&lt;br /&gt;
'''Windows'''&lt;br /&gt;
 %XEBRA_DEV%\apache\bin\httpd.exe&lt;br /&gt;
 %XEBRA_DEV%\eiffel_projects\xebra_server\EIFGENs\xebra_server\F_code\xebra_server.exe %XEBRA_DEV%\eiffel_projects\xebra_server\config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
'''Linux'''&lt;br /&gt;
 $XEBRA_DEV/apache/bin/httpd&lt;br /&gt;
 $XEBRA_DEV/eiffel_projects/xebra_server/EIFGENs/xebra_server/F_code/xebra_server $XEBRA_DEV/eiffel_projects/xebra_server/config.srv -d 6&lt;br /&gt;
&lt;br /&gt;
and then open&lt;br /&gt;
 http://localhost/helloworld&lt;br /&gt;
in your web browser.&lt;br /&gt;
&lt;br /&gt;
The server will then start compiling the xebra precompile library and generate the helloworld webapp. It can take a minute to do so the first time. While compiling you will see a page saying &amp;quot;Application 'helloworld' is compiling...&amp;quot;. After a while hit F5 and you should see &amp;quot;Hello WORLD!&amp;quot; (or &amp;quot;Hello world!&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Documentation&amp;diff=13389</id>
		<title>Xebra Documentation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Documentation&amp;diff=13389"/>
				<updated>2009-09-01T00:34:17Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Howto's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
* [[Xebra Socket Communication]]&lt;br /&gt;
&lt;br /&gt;
=Xebra HTTP Server Plugins=&lt;br /&gt;
* [[Xebra Module Communication Protocol|Module Communication Protocol]]&lt;br /&gt;
* [[Xebra Module Content Types|Content Types]]&lt;br /&gt;
&lt;br /&gt;
==Mod_xebra for Apache==&lt;br /&gt;
* [[Xebra Apache Module Windows|Apache Module Windows]]&lt;br /&gt;
&lt;br /&gt;
=Xebra Server=&lt;br /&gt;
* [[Xebra Server Administration]]&lt;br /&gt;
&lt;br /&gt;
= Web Applications =&lt;br /&gt;
* [[Xebra Webapp Config File]]&lt;br /&gt;
&lt;br /&gt;
==Xebra Tag Libraries==&lt;br /&gt;
On the following pages you can find the descriptions of the different tags of the available tag libraries. &lt;br /&gt;
* [[Xebra Taglib Page|Page]]&lt;br /&gt;
* [[Xebra Taglib Xeb|Xeb]]&lt;br /&gt;
* [[Xebra Taglib Form|Form]]&lt;br /&gt;
* [[Xebra Taglib XRPC|XRPC]]&lt;br /&gt;
* [[Xebra Tag Attribute|Tag Attribute]]&lt;br /&gt;
&lt;br /&gt;
==Master pages==&lt;br /&gt;
* [[Xebra Master Pages|Templates with master pages]]&lt;br /&gt;
&lt;br /&gt;
==XML_RPC==&lt;br /&gt;
* [[Xebra XML_RPC]]&lt;br /&gt;
&lt;br /&gt;
=Code documentation=&lt;br /&gt;
==Xebra Libraries==&lt;br /&gt;
=== Thread Utilities ===&lt;br /&gt;
An implementation of a [http://en.wikipedia.org/wiki/Thread_pool_pattern| Thread Pool]. There are two implementations: with or without data class reuse (DATA_THREAD_POOL and THREAD_POOL).&lt;br /&gt;
&lt;br /&gt;
=== Xebra AST Elements ===&lt;br /&gt;
This library contains various classes which model eiffel language constructs. It consists of classes, features, comments, locals and expressions. They can be combined to build an object model of an eiffel class. Convenience features are provided to add locals and variables with unique names.&lt;br /&gt;
AST Elements can be serialized to a text representation.&lt;br /&gt;
It also contains some specialized classes for Xebra.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Common ===&lt;br /&gt;
&lt;br /&gt;
Xebra_common contains all commands, command responses and interfaces for commands that are used by the server and the webapps. Furthermore, it contains deferred classes for server modules and webapp config classes.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Error===&lt;br /&gt;
Provides internal error types for all xebra applications such as XERROR_CANNOT_OPEN_FILE or XERROR_SOCKET_NOT_BOUND. These errors are not supplied to the browser but only displayed in the log/console.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Error Responses ===&lt;br /&gt;
Classes from xebra_error_responses are split into XER_SERVER: error responses generated by the server and XER_APP: error responses generated by the webapp. Both types are ultimately sent to the http server plugin and displayed in the user's browser. For instance XER_POST_TOO_BIG is a server error response that is created if the post request is bigger than allowed. XER_APP_CANNOT_FIND_PAGE is a response created by the webapp and then sent to the server if no servlet with the specified name was defined.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Http ===&lt;br /&gt;
&lt;br /&gt;
Xebra_http provides classes for cookies, html requests, html responses, sessions and their parsers.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary Base ===&lt;br /&gt;
The base tag library contains all the basic Xebra tag implementations like display, call and iterate. For a more detailed explanation of the tags see [[Xebra_Taglib_Xeb| the documentation]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary Form ===&lt;br /&gt;
The form tag library contains all tag implementations for form related tags. Automatic wrapping of values, controls and validations are included in this library. For a more detailed explanation see [[Xebra_Taglib_Form|here]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary XRPC ===&lt;br /&gt;
This tag library contains tags for XML-RPC applications. For further information see [[Xebra_Taglib_XRPC|here]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Utilities ===&lt;br /&gt;
&lt;br /&gt;
Xebra_utilities is a collection of independent helper classes such as text escaper, file utilities, log outputter, stopwatch, string expander etc.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Tags ===&lt;br /&gt;
Contains all super classes used for xebra tags and xebra tag arguments. Also contains super classes for servlet generation (XGEN_SERVLET_GENERATOR).&lt;br /&gt;
&lt;br /&gt;
===Xebra Web Application===&lt;br /&gt;
&lt;br /&gt;
Provides all necessary base classes such as XWA_SERVLET, XWA_CONTROLLER, XWA_APPLICATION to webapp applications. Takes care of communication with server.&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
== Howtos ==&lt;br /&gt;
===Build Windows Installer===&lt;br /&gt;
&lt;br /&gt;
* Install apache (c:\apache)&lt;br /&gt;
*Visual Build Professional 7: &lt;br /&gt;
**Open xebra\tools\installer\win\XebraBuild.bld&lt;br /&gt;
**Adapt Macro-&amp;gt;Project variables to match your system (APACHE, ROOT)&lt;br /&gt;
**Run&lt;br /&gt;
*Inno Setup 5 Compiler&lt;br /&gt;
**Open xebra\tools\installer\win\innosetup\xebra_install_test.iss&lt;br /&gt;
**Generate new AppId&lt;br /&gt;
**Changed AppVersion&lt;br /&gt;
**Check that LicenseFile file exists (gnu licence?)&lt;br /&gt;
**Check Source files are correct folder&lt;br /&gt;
**Build&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Documentation&amp;diff=13388</id>
		<title>Xebra Documentation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Documentation&amp;diff=13388"/>
				<updated>2009-09-01T00:27:35Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
* [[Xebra Socket Communication]]&lt;br /&gt;
&lt;br /&gt;
=Xebra HTTP Server Plugins=&lt;br /&gt;
* [[Xebra Module Communication Protocol|Module Communication Protocol]]&lt;br /&gt;
* [[Xebra Module Content Types|Content Types]]&lt;br /&gt;
&lt;br /&gt;
==Mod_xebra for Apache==&lt;br /&gt;
* [[Xebra Apache Module Windows|Apache Module Windows]]&lt;br /&gt;
&lt;br /&gt;
=Xebra Server=&lt;br /&gt;
* [[Xebra Server Administration]]&lt;br /&gt;
&lt;br /&gt;
= Web Applications =&lt;br /&gt;
* [[Xebra Webapp Config File]]&lt;br /&gt;
&lt;br /&gt;
==Xebra Tag Libraries==&lt;br /&gt;
On the following pages you can find the descriptions of the different tags of the available tag libraries. &lt;br /&gt;
* [[Xebra Taglib Page|Page]]&lt;br /&gt;
* [[Xebra Taglib Xeb|Xeb]]&lt;br /&gt;
* [[Xebra Taglib Form|Form]]&lt;br /&gt;
* [[Xebra Taglib XRPC|XRPC]]&lt;br /&gt;
* [[Xebra Tag Attribute|Tag Attribute]]&lt;br /&gt;
&lt;br /&gt;
==Master pages==&lt;br /&gt;
* [[Xebra Master Pages|Templates with master pages]]&lt;br /&gt;
&lt;br /&gt;
==XML_RPC==&lt;br /&gt;
* [[Xebra XML_RPC]]&lt;br /&gt;
&lt;br /&gt;
=Code documentation=&lt;br /&gt;
==Xebra Libraries==&lt;br /&gt;
=== Thread Utilities ===&lt;br /&gt;
An implementation of a [http://en.wikipedia.org/wiki/Thread_pool_pattern| Thread Pool]. There are two implementations: with or without data class reuse (DATA_THREAD_POOL and THREAD_POOL).&lt;br /&gt;
&lt;br /&gt;
=== Xebra AST Elements ===&lt;br /&gt;
This library contains various classes which model eiffel language constructs. It consists of classes, features, comments, locals and expressions. They can be combined to build an object model of an eiffel class. Convenience features are provided to add locals and variables with unique names.&lt;br /&gt;
AST Elements can be serialized to a text representation.&lt;br /&gt;
It also contains some specialized classes for Xebra.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Common ===&lt;br /&gt;
&lt;br /&gt;
Xebra_common contains all commands, command responses and interfaces for commands that are used by the server and the webapps. Furthermore, it contains deferred classes for server modules and webapp config classes.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Error===&lt;br /&gt;
Provides internal error types for all xebra applications such as XERROR_CANNOT_OPEN_FILE or XERROR_SOCKET_NOT_BOUND. These errors are not supplied to the browser but only displayed in the log/console.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Error Responses ===&lt;br /&gt;
Classes from xebra_error_responses are split into XER_SERVER: error responses generated by the server and XER_APP: error responses generated by the webapp. Both types are ultimately sent to the http server plugin and displayed in the user's browser. For instance XER_POST_TOO_BIG is a server error response that is created if the post request is bigger than allowed. XER_APP_CANNOT_FIND_PAGE is a response created by the webapp and then sent to the server if no servlet with the specified name was defined.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Http ===&lt;br /&gt;
&lt;br /&gt;
Xebra_http provides classes for cookies, html requests, html responses, sessions and their parsers.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary Base ===&lt;br /&gt;
The base tag library contains all the basic Xebra tag implementations like display, call and iterate. For a more detailed explanation of the tags see [[Xebra_Taglib_Xeb| the documentation]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary Form ===&lt;br /&gt;
The form tag library contains all tag implementations for form related tags. Automatic wrapping of values, controls and validations are included in this library. For a more detailed explanation see [[Xebra_Taglib_Form|here]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary XRPC ===&lt;br /&gt;
This tag library contains tags for XML-RPC applications. For further information see [[Xebra_Taglib_XRPC|here]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Utilities ===&lt;br /&gt;
&lt;br /&gt;
Xebra_utilities is a collection of independent helper classes such as text escaper, file utilities, log outputter, stopwatch, string expander etc.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Tags ===&lt;br /&gt;
Contains all super classes used for xebra tags and xebra tag arguments. Also contains super classes for servlet generation (XGEN_SERVLET_GENERATOR).&lt;br /&gt;
&lt;br /&gt;
===Xebra Web Application===&lt;br /&gt;
&lt;br /&gt;
Provides all necessary base classes such as XWA_SERVLET, XWA_CONTROLLER, XWA_APPLICATION to webapp applications. Takes care of communication with server.&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
== Howto's ==&lt;br /&gt;
===Build Windows Installer===&lt;br /&gt;
&lt;br /&gt;
* Install apache (c:\apache)&lt;br /&gt;
*Visual Build Professional 7: &lt;br /&gt;
**Open xebra\tools\installer\win\XebraBuild.bld&lt;br /&gt;
**Adapt Macro-&amp;gt;Project variables to match your system (APACHE, ROOT)&lt;br /&gt;
**Run&lt;br /&gt;
*Inno Setup 5 Compiler&lt;br /&gt;
**Open xebra\tools\installer\win\innosetup\xebra_install_test.iss&lt;br /&gt;
**Generate new AppId&lt;br /&gt;
**Changed AppVersion&lt;br /&gt;
**Check that LicenseFile file exists (gnu licence?)&lt;br /&gt;
**Check Source files are correct folder&lt;br /&gt;
**Build&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Create_Webapps&amp;diff=13387</id>
		<title>Xebra Create Webapps</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Create_Webapps&amp;diff=13387"/>
				<updated>2009-09-01T00:07:28Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Create a new webapp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
=Create a new webapp=&lt;br /&gt;
&lt;br /&gt;
# Setup an initial Eiffel project for your webapp. For that matter you can use this [https://svn.eiffel.com/eiffelstudio/trunk/Src/framework/web/xebra/tools/scripts/linux/create_website.sh script] which creates all necessary files. Make sure to assign a free port to your webapp (see also [[Xebra Webapp Config File]]). The webapp has to be created in the same folder that is specified in the servers config file at webapps_root. See [[Xebra Server Config File]] for more information.&lt;br /&gt;
# Run the server (see [[Xebra Server Administration]]) and browse to http://localhost:55000/yourwebapp. The server will translate and compile your webapp. Once compiled, you should see a page displaying &amp;quot;Yourwebapp works!&amp;quot;.&lt;br /&gt;
# Create xeb files for your webapp. See [[Xebra Documentation|Xebra Tag Libraries]] for more info about xeb tags (see also [[Xebra Write Xeb File | Tutorial]]). Note that you have to let the server re-translate your webapp everytime you change xeb-files or add new xeb-files. This can be done by just pressing F5 in the browser. The server automatically detects that the webapp has to be re-translated if it is set to Development Mode (see [[Xebra Server Administration]] for more info).&lt;br /&gt;
# Create the eiffel classes.&lt;br /&gt;
&lt;br /&gt;
=Add support for XML-RPC=&lt;br /&gt;
* [[Xebra Create XML-RPC Webapp]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Manually translate a webapp=&lt;br /&gt;
To manually translate, generate and compile your webapp use the following commands&lt;br /&gt;
&lt;br /&gt;
Linux&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd $XEBRA_DEV/httpd/htdocs/yourwebapp/&lt;br /&gt;
&lt;br /&gt;
#Translate&lt;br /&gt;
$XEBRA_DEV/eiffel_projects/xebra_translator/EIFGENs/xebra_translator/W_code/xebra_translator -n yourwebapp -i . -o . -l $XEBRA_DEV/eiffel_projects/xebra_translator&lt;br /&gt;
&lt;br /&gt;
#Compile servlet_gen&lt;br /&gt;
ec -experiment -config .generated/servlet_gen/servlet_gen.ecf -target servlet_gen -c_compile -stop&lt;br /&gt;
&lt;br /&gt;
#Execute servlet_gen&lt;br /&gt;
.generated/servlet_gen/EIFGENs/servlet_gen/W_code/servlet_gen -o .&lt;br /&gt;
&lt;br /&gt;
#Compile webapp&lt;br /&gt;
ec -experiment -config yourwebapp.ecf -target yourwebapp -c_compile -stop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd %XEBRA_DEV%\httpd\htdocs\yourwebapp\&lt;br /&gt;
&lt;br /&gt;
#Translate&lt;br /&gt;
%XEBRA_DEV%\eiffel_projects\xebra_translator\EIFGENs\xebra_translator\W_code\xebra_translator -n yourwebapp -i . -o . -l %XEBRA_DEV%\eiffel_projects\xebra_translator&lt;br /&gt;
&lt;br /&gt;
#Compile servlet_gen&lt;br /&gt;
ec -experiment -config .generated\servlet_gen\servlet_gen.ecf -target servlet_gen -c_compile -stop&lt;br /&gt;
&lt;br /&gt;
#Execute servlet_gen&lt;br /&gt;
.generated\servlet_gen\EIFGENs\servlet_gen\W_code\servlet_gen.exe .&lt;br /&gt;
&lt;br /&gt;
#Compile webapp&lt;br /&gt;
ec -experiment -config yourwebapp.ecf -target yourwebapp -c_compile -stop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionally, you can add the &amp;quot;-clean&amp;quot; option for ec and the &amp;quot;-f&amp;quot; option for translator to force a complete recompilation.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Tutorial&amp;diff=13382</id>
		<title>Xebra Tutorial</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Tutorial&amp;diff=13382"/>
				<updated>2009-08-31T21:28:14Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Server=&lt;br /&gt;
* Run Xebra Server: [[Xebra Server Administration]]&lt;br /&gt;
&lt;br /&gt;
=Webapp=&lt;br /&gt;
* Create a webapp: [[Xebra Create Webapps|Create Webapps]]&lt;br /&gt;
* Debug a webapp: [[Xebra Debug Webapp|Debug Webapp]]&lt;br /&gt;
* Write a xeb file: [[Xebra Write Xeb File|Write Xeb File]]&lt;br /&gt;
* Add XML-RPC support (currently not available): [[Xebra Create XML-RPC Webapp]]&lt;br /&gt;
&lt;br /&gt;
=Extend Xebra=&lt;br /&gt;
*Create your own tag libraries: [[Xebra Create Tag Library|Create custom tag library]]&lt;br /&gt;
&lt;br /&gt;
=Apache=&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Xebra_Documentation&amp;diff=13379</id>
		<title>Xebra Documentation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Xebra_Documentation&amp;diff=13379"/>
				<updated>2009-08-31T18:08:07Z</updated>
		
		<summary type="html">&lt;p&gt;Fabioz: /* Xebra Taglibrary XRPC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Xebra]]&lt;br /&gt;
[[Xebra About|About]] | [[Xebra Installation|Installation]] |  [[Xebra Documentation|Documentation]] |  [[Xebra Tutorial|Tutorials]] | [[Xebra FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
* [[Xebra Socket Communication]]&lt;br /&gt;
&lt;br /&gt;
=Xebra HTTP Server Plugins=&lt;br /&gt;
* [[Xebra Module Communication Protocol|Module Communication Protocol]]&lt;br /&gt;
* [[Xebra Module Content Types|Content Types]]&lt;br /&gt;
&lt;br /&gt;
==Mod_xebra for Apache==&lt;br /&gt;
* [[Xebra Apache Module Windows|Apache Module Windows]]&lt;br /&gt;
&lt;br /&gt;
=Xebra Server=&lt;br /&gt;
* [[Xebra Server Administration]]&lt;br /&gt;
&lt;br /&gt;
= Web Applications =&lt;br /&gt;
* [[Xebra Webapp Config File]]&lt;br /&gt;
&lt;br /&gt;
==Xebra Tag Libraries==&lt;br /&gt;
On the following pages you can find the descriptions of the different tags of the available tag libraries. &lt;br /&gt;
* [[Xebra Taglib Page|Page]]&lt;br /&gt;
* [[Xebra Taglib Xeb|Xeb]]&lt;br /&gt;
* [[Xebra Taglib Form|Form]]&lt;br /&gt;
* [[Xebra Taglib XRPC|XRPC]]&lt;br /&gt;
* [[Xebra Tag Attribute|Tag Attribute]]&lt;br /&gt;
&lt;br /&gt;
==Master pages==&lt;br /&gt;
* [[Xebra Master Pages|Templates with master pages]]&lt;br /&gt;
&lt;br /&gt;
==XML_RPC==&lt;br /&gt;
* [[Xebra XML_RPC]]&lt;br /&gt;
&lt;br /&gt;
=Code documentation=&lt;br /&gt;
==Xebra Libraries==&lt;br /&gt;
=== Thread Utilities ===&lt;br /&gt;
An implementation of a [http://en.wikipedia.org/wiki/Thread_pool_pattern| Thread Pool]. There are two implementations: with or without data class reuse (DATA_THREAD_POOL and THREAD_POOL).&lt;br /&gt;
&lt;br /&gt;
=== Xebra AST Elements ===&lt;br /&gt;
This library contains various classes which model eiffel language constructs. It consists of classes, features, comments, locals and expressions. They can be combined to build an object model of an eiffel class. Convenience features are provided to add locals and variables with unique names.&lt;br /&gt;
AST Elements can be serialized to a text representation.&lt;br /&gt;
It also contains some specialized classes for Xebra.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Common ===&lt;br /&gt;
&lt;br /&gt;
Xebra_common contains all commands, command responses and interfaces for commands that are used by the server and the webapps. Furthermore, it contains deferred classes for server modules and webapp config classes.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Error===&lt;br /&gt;
Provides internal error types for all xebra applications such as XERROR_CANNOT_OPEN_FILE or XERROR_SOCKET_NOT_BOUND. These errors are not supplied to the browser but only displayed in the log/console.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Error Responses ===&lt;br /&gt;
Classes from xebra_error_responses are split into XER_SERVER: error responses generated by the server and XER_APP: error responses generated by the webapp. Both types are ultimately sent to the http server plugin and displayed in the user's browser. For instance XER_POST_TOO_BIG is a server error response that is created if the post request is bigger than allowed. XER_APP_CANNOT_FIND_PAGE is a response created by the webapp and then sent to the server if no servlet with the specified name was defined.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Http ===&lt;br /&gt;
&lt;br /&gt;
Xebra_http provides classes for cookies, html requests, html responses, sessions and their parsers.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary Base ===&lt;br /&gt;
The base tag library contains all the basic Xebra tag implementations like display, call and iterate. For a more detailed explanation of the tags see [[Xebra_Taglib_Xeb| the documentation]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary Form ===&lt;br /&gt;
The form tag library contains all tag implementations for form related tags. Automatic wrapping of values, controls and validations are included in this library. For a more detailed explanation see [[Xebra_Taglib_Form|here]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Taglibrary XRPC ===&lt;br /&gt;
This tag library contains tags for XML-RPC applications. For further information see [[Xebra_Taglib_XRPC|here]].&lt;br /&gt;
&lt;br /&gt;
=== Xebra Utilities ===&lt;br /&gt;
&lt;br /&gt;
Xebra_utilities is a collection of independent helper classes such as text escaper, file utilities, log outputter, stopwatch, string expander etc.&lt;br /&gt;
&lt;br /&gt;
=== Xebra Tags ===&lt;br /&gt;
Contains all super classes used for xebra tags and xebra tag arguments. Also contains super classes for servlet generation (XGEN_SERVLET_GENERATOR).&lt;br /&gt;
&lt;br /&gt;
===Xebra Web Application===&lt;br /&gt;
&lt;br /&gt;
Provides all necessary base classes such as XWA_SERVLET, XWA_CONTROLLER, XWA_APPLICATION to webapp applications. Takes care of communication with server.&lt;/div&gt;</summary>
		<author><name>Fabioz</name></author>	</entry>

	</feed>