You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by re...@apache.org on 2008/08/01 17:15:29 UTC

svn commit: r681719 [3/10] - in /incubator/empire-db/site: ./ community/ css/ documentation/ downloads/ empiredb/ images/ images/diagrams/ images/logos/ images/mail/ images/menu/ javadocs/ js/ struts2ext/ support/

Added: incubator/empire-db/site/documentation/tutorial.htm
URL: http://svn.apache.org/viewvc/incubator/empire-db/site/documentation/tutorial.htm?rev=681719&view=auto
==============================================================================
--- incubator/empire-db/site/documentation/tutorial.htm (added)
+++ incubator/empire-db/site/documentation/tutorial.htm Fri Aug  1 08:15:26 2008
@@ -0,0 +1,741 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" >
+<!-- #BeginTemplate "../main.dwt" -->
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta http-equiv="language" content="en" />
+	<meta name="robots" content="index, follow" />
+	<meta name="keywords" content="java, jar, jdbc, sql, data, metadata, persistence, rdbms, orm, mapping" />
+	<meta name="description" content="Open Source relational data persistence component." />
+	
+	<!-- #BeginEditable "doctitle" -->
+<title>Empire-db - Tutorials</title>
+	<!-- #EndEditable -->
+	
+	<script type="text/javascript" src="../js/prototype.js"></script>
+	<script type="text/javascript" src="../js/menu.js"></script>
+	<!-- #BeginEditable "javascripts" -->
+	<!-- #EndEditable -->
+	
+	<link rel="shortcut icon" href="../empire-db.ico" />
+	<link rel="stylesheet" href="../css/layout.css" type="text/css" />
+	<!-- #BeginEditable "stylesheets" -->
+	<style type="text/css">
+.style1 {
+	color: #0000FF;
+}
+.style2 {
+	color: #000000;
+}
+.style3 {
+	color: #800080;
+}
+</style>
+	<!-- #EndEditable -->
+</head>
+
+<body>
+<div id="wrapper">
+
+	<!-- Header -->
+	<div id="header">
+		<div id="logo">
+			<img src="../images/logos/empire-db-logo.gif" alt="Empire-db: The relational data persistence component." />
+		</div>
+		<div id="asf">
+			<a target="_blank" href="http://incubator.apache.org/">
+			<img src="../images/logos/apache-incubator-logo.png" alt="Apache Incubator" /></a>
+		</div>
+		<div style="clear:both"></div>
+	</div>
+	
+	<!-- Top -->
+	<div id="top">
+		<div id="topbar">&nbsp;</div>
+	</div>
+	
+	<!-- Middle -->
+	<div id="middle">
+		<div id="left">    
+				<div id="menuBox">     
+					<ul id="mainMenu">
+						<li id="menu_home"><a href="../index.html">Home</a></li>
+						<li id="menu_news"><a href="../news.htm">News</a></li>
+						<li id="menu_empiredb">
+						<a href="../empiredb/empiredb.htm">Empire-db</a>
+								<ul class="subMenu">
+									<li id="menu_empiredb_extending_pattern">
+									<a href="../empiredb/pattern.htm">The Empire DAO-<br />pattern</a></li>
+									<li id="menu_empiredb_handling_metadata">
+									<a href="../empiredb/metadata.htm">Handling data and metadata</a></li>
+									<li id="menu_empiredb_wrong">
+									<a href="../empiredb/hibernate.htm">What's wrong with Hibernate and JPA</a></li>
+									<li id="menu_empiredb_stringfree">
+									<a href="../empiredb/stringfree.htm">The principle of<br/>string-free coding</a></li>
+									<li id="menu_empiredb_faq">
+									<a href="../empiredb/faq.htm">FAQ</a></li>
+								</ul>
+						</li>
+						<li id="menu_struts2ext">
+						<a href="../struts2ext/struts2ext.htm">Empire-db and Struts2</a>
+							<ul class="subMenu">
+								<li id="menu_struts2ext_forms_controls">
+								<a href="../struts2ext/forms_controls.htm">Forms and controls</a></li>
+								<li id="menu_struts2ext_rendering_parsing">
+								<a href="../struts2ext/rendering_parsing.htm">Rendering and parsing</a></li>
+								<!--<li id="menu_struts2ext_tag_reference"><a href="struts2ext/tag_reference.htm">Tag reference</a></li>-->
+								<li id="menu_struts2ext_input_controls">
+								<a href="../struts2ext/input_controls.htm">Input controls</a></li>
+							</ul>
+						</li>
+						<li id="menu_downloads">
+						<a href="../downloads/downloads.htm">Downloads</a>
+								<ul class="subMenu">
+									<li id="menu_downloads_license">
+									<a href="../downloads/license.htm">License</a></li>
+								</ul>
+						</li>
+						<li id="menu_documentation"><a href="documentation.htm">Documentation</a>					
+							<ul class="subMenu">
+								<li id="menu_documentation_class_overview">
+								<a href="class_overview.htm">Empire-db class<br />overview</a></li>
+								<li id="menu_documentation_tutorials">
+								<a href="tutorial.htm">Tutorial</a></li>
+								<li id="menu_documentation_getting_started">
+								<a href="getting_started.htm">Getting started</a></li>
+								<li id="menu_documentation_api">
+								<a href="api.htm">API</a></li>
+							</ul>
+						</li>
+						<li id="menu_community">
+						<a href="../community/community.htm">Community</a>					
+							<ul class="subMenu">
+								<li id="menu_community_mailing_lists">
+								<a href="../community/mailing_lists.htm">Mailing lists</a></li>
+								<!--<li id="menu_community_source_code"><a href="community/source_code.htm">Source code</a></li>-->
+								<li id="menu_community_jira">
+								<a href="../community/jira.htm">Ticketing system</a></li>
+								<!--<li id="menu_community_road_map"><a href="community/road_map.htm">Road map</a></li>-->
+								<li id="menu_community_contributors">
+								<a href="../community/contributors.htm">Contributors</a></li>
+							</ul>
+						</li>
+						<li id="menu_disclaimer"><a href="../disclaimer.htm">Disclaimer</a></li>
+					</ul>
+				</div>
+				
+		</div>
+	
+		<!-- #BeginEditable "menu" -->	
+	<script type="text/javascript">
+		var menu = new Menu( 'mainMenu', 'menu_documentation', 'menu_documentation_tutorials' );
+		var prev_page = "class_overview.htm";
+		var next_page = "getting_started.htm";
+	</script>
+		<!-- #EndEditable -->
+		<script type="text/javascript">
+			/* <![CDATA[ */
+			if( menu ) {
+				// Menu fully opened (comment out if not wanted)
+				// menu.openAll();
+			/* ]]> */
+			}
+		</script>
+	
+		<div id="main">		
+			
+			<div id="pathway">
+			<!-- #BeginEditable "pathway" -->
+	        	<a href="documentation.htm">Documentation</a> &raquo; Tutorial
+	        <!-- #EndEditable -->
+	        </div>
+			
+			<div id="content">
+			<!-- #BeginEditable "content" -->
+				<!--<h1>Sample application SampleDB</h1>-->
+				<h1>Introduction</h1>
+					<p>
+						This tutorial demonstrates in eight easy steps how to 
+						work with Empire-db and perform the most common tasks of 
+						data persistence: inserting, updating and deleting 
+						records as well as performing queries.</p>
+			<p>
+						The sample application used for this tutorial is 
+						provided with the Empire-db distribution and can be 
+						found in the <i><b>examples/DBSample</b></i> directory. 
+						If you are using the Eclipse IDE there is also an 
+						Eclipse project file that allows you to open the project 
+						straight away. In your IDE, set a breakpoint on the first line 
+						of the main method in SampleApp.java and debug the sample.</p>
+			<p>
+						The sample works with a HSQL database that is provided 
+						with the distribution files, and allows the application to run &quot;off 
+						the shelf&quot;. However it can easily be reconfigured to 
+						work with a Microsoft SQL-Server or Oracle database 
+						instead by altering the <i><b>config.xml</b></i> file.</p>
+			<p>
+						In detail the tutorial shows the following:</p>
+					<ul>
+						<li>How to declare your data model using Java classes 
+						and objects</li>
+						<li>How to generate a DDL-Script from the data model 
+						definition and create all database objects on the server</li>
+						<li>How to insert, update and delete individual records</li>
+						<li>How to perform a database query including joins and 
+						constraints</li>
+						<li>How to access the query results either sequentially 
+						row by row, as a bean list or as an XML document.</li>
+					</ul>
+					<h1>Structure of the Sample Application</h1>
+					<p>
+						The sample application is made up of four files:</p>
+					<ol>
+						<li><b>SampleDB.java</b>: This is the database definition file 
+						which contains the database layout with tables, indices, relations, views, etc.</li>
+						<li><b>SampleApp.java</b>: This class includes the 
+						application&#39;s main method which calls other methods to 
+						perform the individual tasks. Set a breakpoint here to 
+						step though the application using your debugger.</li>
+						<li><b>SampleConfig.java</b>: This class provides access 
+						to configuration settings, which are read from the 
+						configuration file config.xml.</li>
+						<li><b>SampleBean.java</b>: This class is used to store 
+						query results in a simple Plain Old Java Object (POJO). 
+						The properties of this class only hold the fields of the 
+						query and not all the fields of a full database entity.</li>
+					</ol>
+					<p><em>Note:</em> In order to run the sample on a database 
+					system other than the HSQLDB provided, first the 
+					corresponding JDBC driver has to be added to the classpath. 
+					Afterwards the settings for the database provider and the 
+					JDBC connection have to be adjusted accordingly in the file 
+					config.xml.</p>	
+<pre><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">properties</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> provider name must match the property-section containing the connection data </span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">databaseProvider</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">hsqldb</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">databaseProvider</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">properties</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+
+</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">properties-hsqldb</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; "> jdbc properties </span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">jdbcClass</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">org.hsqldb.jdbcDriver</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">jdbcClass</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">jdbcURL</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">jdbc:hsqldb:file:hsqldb/sample;shutdown=true</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">jdbcURL</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">jdbcUser</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">sa</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">jdbcUser</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">jdbcPwd</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">jdbcPwd</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">schemaName</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">DBSAMPLE</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">schemaName</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">properties-hsqldb</span><span style="color: #0000FF; ">&gt;</span></pre>    							
+			<p>	Within the project you will also find a subdirectory named „output“ 
+			which contains 
+			the console output of the individual steps of this 
+			tutorial.</p>
+								
+								<h1>Data model definition (SampleDB.java)</h1>
+								<p>
+									For the data model definition we first 
+									create a <font face="Courier New">«</font>database<font face="Courier New">»</font> class 
+									called SampleDB, which inherits from 
+									de.esteam.empire.db.DBDatabase. 
+									All tables (and possibly views) of the data 
+									model are 
+									declared as <i><b>public final</b></i> 
+									fields which are assigned to the corresponding 
+									table or view object. Additionally in the constructor 
+									a foreign key relation from the employees 
+									table to departments table is added.
+								</p>
+								
+<pre><font color="#0000FF">public class </font>SampleDB <font color="#0000FF">extends</font> DBDatabase {
+
+<span style="color: #008000; ">    //</span><span style="color: #008000; "> Table class definition (see below)
+</span><font color="#0000FF">    public static class </font>Departments <font color="#0000FF">extends</font> DBTable {... } 
+<font color="#0000FF">    public static class </font>Employees <font color="#0000FF">extends</font> DBTable {... }
+<span style="color: #008000; ">
+    //</span><span style="color: #008000; "> Table members</span><span style="color: #008000; ">
+    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> Departments  DEPARTMENTS </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Departments(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">);
+    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> Employees    EMPLOYEES   </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Employees(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">);
+
+    </span><span style="color: #008000; ">// SampleDB constructor
+</span>    <span style="color: #0000FF; ">public</span><span style="color: #000000; "> SampleDB()
+    {
+        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Define foreign key relations</span><span style="color: #008000; ">
+    </span><span style="color: #000000; ">    addRelation(EMPLOYEES.DEPARTMENT_ID
+                .referenceOn(DEPARTMENTS.DEPARTMENT_ID ));
+    }
+</span><span style="color: #000000; ">}</span></pre>								
+    							<p>
+									In our example we create an individual class 
+									for each of the two tables. Instead of 
+									normal classes however, we use nested classes 
+									here. While not necessary, this is a 
+									convenient way of keeping the whole data 
+									model in one file.
+									This is sensible since it contains no or 
+									only little logic.</p>
+								
+<pre><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Employees </span><span style="color: #0000FF; ">extends</span><span style="color: #000000; "> DBTable
+{
+    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> DBTableColumn EMPLOYEE_ID;
+    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> DBTableColumn LASTNAME;
+    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> DBTableColumn GENDER;
+    ...
+    </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Constructor for the table</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> Employees(DBDatabase db)
+    {
+       </span><span class="style3">super</span><span style="color: #000000; ">(</span><span class="style1">&quot;EMPLOYEES</span><span style="color: #000000; ">&quot;, db);
+       </span><span style="color: #008000; ">//</span><span style="color: #008000; "> ID</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">       </span><span class="style2">EMPLOYEE_ID</span><span style="color: #000000; "> </span><span style="color: #000000; ">=</span><span style="color: #000000; "> addColumn(</span><span class="style1">&quot;EMPLOYEE_ID&quot;</span><span style="color: #000000; ">, </span>DataType.<span class="style1">AUTOINC</span><span style="color: #000000; ">,  0</span><span style="color: #000000; ">, </span><span class="style3">true</span><span style="color: #000000; ">, </span><span class="style1">&quot;EMPLOYEE_ID_SEQUENCE</span><span style="color: #000000; ">&quot;);
+       </span><span class="style2">LASTNAME</span><span style="color: #000000; ">    </span><span style="color: #000000; ">=</span><span style="color: #000000; "> addColumn(</span><span class="style1">&quot;LASTNAME</span><span style="color: #000000; ">&quot;,    DataType.</span><span class="style1">TEXT</span><span style="color: #000000; ">,    40</span><span style="color: #000000; ">, </span><span class="style3">true</span><span style="color: #000000; ">);
+       </span><span class="style2">GENDER</span><span style="color: #000000; ">      = addColumn(</span><span class="style1">&quot;GENDER&quot;</span><span style="color: #000000; ">,      DataType.</span><span class="style1">TEXT</span><span style="color: #000000; ">,     1</span><span style="color: #000000; ">, </span><span class="style3">false</span><span style="color: #000000; ">);
+       ...
+       </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Primary key</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">       setPrimaryKey(EMPLOYEE_ID);
+       </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Set other indeces</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">       addIndex(</span><span class="style1">&quot;EMPLOYEE_NAME_IDX</span><span style="color: #000000; ">&quot;, </span><span class="style3">true</span><span style="color: #000000; ">, 
+            </span><span class="style3">new</span><span style="color: #000000; "> DBColumn[] { FIRSTNAME, LASTNAME, DATE_OF_BIRTH });
+       </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Set timestamp column to save updates</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">       setTimestampColumn(UPDATE_TIMESTAMP);
+        
+       </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Create Options for GENDER column</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">       Options genders </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span class="style3">new</span><span style="color: #000000; "> Options();
+       genders.set(</span><span class="style1">&quot;M</span><span style="color: #000000; ">&quot;, </span><span class="style1">&quot;Male&quot;</span><span style="color: #000000; ">);
+       genders.set(</span><span class="style1">&quot;F&quot;</span><span style="color: #000000; ">, </span><span class="style1">&quot;Female</span><span style="color: #000000; ">&quot;);
+       GENDER.setOptions(genders);    
+    }    
+}</span></pre>						
+    							<p>In the constructor of each table class we add 
+								the columns and assign the column object to a <i>
+								<b>public final</b></i> field. This will allow 
+								us to browse and access the column objects 
+								directly from our source code.</p>
+			<p>Afterwards we set the primary key, add other indices and set a 
+			timestamp field which is internally used for optimistic locking.</p>
+			<p>Finally additional column metadata is added here, which could 
+			however also be added elsewhere.</p>
+								<p>
+									<i>Naming convention note:</i> Since we 
+									declare all table and column objects as <i>
+									<b>public final</b></i> fields we write them 
+									in all upper-case letters. In order to 
+									simplify browsing of these properties using 
+									code completion and get them all well 
+									grouped together you might as well 
+									additionally add a prefix like T_ for tables 
+									and C_ for columns, which we recommend but 
+									have not done in this example. It&#39;s up to 
+									you whether you want to stick to these 
+									conventions or not.<br/>
+								</p>
+								<h1>Empire-db SampleApp - Step by step</h1>
+								<p>
+									When running the sample application the 
+									entry point is the main method found in SampleApp.java. 
+									This will perform the following steps:</p>
+			<h2>Step 1 – Step 3: Set up a database connection and open the database</h2>
+								<p>
+									First the application needs to open a database connection to the database server. 
+									For this a jdbcClass, jdbcURL, jdbcUser and jdbcPwd 
+									must be provided with the configuration 
+									in config.xml. 
+									The configuration file is parsed and read by 
+									calling <code>config.init()</code>. To use a different configuration file, this filename can be 
+									passed to the main method as an argument. 
+									Afterwards a JDBC connection is created.</p>
+								
+<pre><span style="color: #000000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; "> Init Configuration</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">config.init((args.length </span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; "> </span><span style="color: #000000; ">?</span><span style="color: #000000; "> args[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">] : </span><span class="style1">&quot;config.xml&quot;</span><span style="color: #000000; ">));
+</span><font color="#008000">// STEP 1: Get a JDBC Connection</font><span style="color: #000000; ">
+Connection conn = getJDBCConnection();</span></pre>
+								<p>
+									In step two the sample creates and initializes 
+									a database driver object for the target 
+									DBMS. This is HSQLDB by default.
+								</p>
+								
+<pre><font color="#008000">// STEP 2: Choose a driver</font><span style="color: #008000; ">
+</span>DBDatabaseDriver driver = getDatabaseDriver(<font color="#0000FF">config</font>.getDatabaseProvider());</pre>
+								<p>
+									Then in
+									step three the database object is opened 
+									using the driver. Only when opened, other methods of the database 
+									object may be used. Finally we check whether or not our database objects 
+									exist.</p>
+								
+<pre><font color="#008000">// STEP 3: Open Database and check if tables exist</font><span style="color: #008000; ">
+</span>db.open(driver, conn);
+databaseExists(conn);</pre>
+			<p>
+									In order to check existence of the database the sample 
+									simply performs a query on the Departments 
+									table (<code>&quot;select count(*) from DEPARTMENTS&quot;</code>) using 
+									the following code:</p>
+								
+<pre><span style="color: #000000; ">DBCommand cmd = db.createCommand();
+cmd.select(db.DEPARTMENTS.count());
+db.querySingleInt(cmd.getSelect(), -1, conn);</span></pre>				
+								
+								<p>If the select 
+								succeeds then the database is assumed to exist 
+								and step 4 is skipped. Otherwise step 4 will create all database objects.</p>
+			<h2>Step 4 – Create a DDL script and the database objects</h2>
+								<p>
+									Based on the database definition in the class SampleDB.java a DDL 
+									script for the whole database is 
+									generated for the creation of all tables, sequences, indices and relations.</p>
+								
+<pre><font color="#008000">// create DLL for Database Definition 
+</font>String ddlScript = db.getCreateDDLScript(driver);</pre>
+
+								<p>
+									Now the individual DDL commands are extracted and 
+									executed line by line using the driver&#39;s 
+									<code>executeSQL()</code> method.</p>
+			<p>
+									<i>Note: </i>If you want to create or delete 
+									individual database objects such as tables, 
+									views, columns and relations you can obtain 
+									the corresponding SQL by calling the driver&#39;s <code>
+									driver.getDDLCommand()</code> method.</p>
+			<h2>Step 5 – Delete data records</h2>
+								<p>
+									This step empties the two tables of the database by deleting all 
+									data records:
+								</p>
+								
+<pre><span style="color: #000000; ">DBCommand cmd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> db.createCommand();
+</span><span style="color: #008000; ">//</span><span style="color: #008000; "> Delete all Employees (no constraints)</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">db.executeSQL(cmd.getDelete(db.EMPLOYEES), conn);
+</span><span style="color: #008000; ">//</span><span style="color: #008000; "> Delete all Departments (no constraints)</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">db.executeSQL(cmd.getDelete(db.DEPARTMENTS), conn);</span></pre>
+
+								<h2>Step 6 – Insert data records</h2>
+								<p>
+									In this step we add sample records for both 
+									the Departments and Employees table.</p>
+			<p>
+									The code used in the sample is virtually 
+									equivalent to this:</p>
+								
+<pre><span style="color: #008000; ">//</span><span style="color: #008000; "> Insert a Department</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">DBRecord rec </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> DBRecord();
+rec.create(db.DEPARTMENTS);
+rec.setValue(db.DEPARTMENTS.NAME, </span><span class="style1">&quot;Development</span><span style="color: #000000; ">&quot;);
+rec.setValue(db.DEPARTMENTS.BUSINESS_UNIT, </span><span class="style1">&quot;ITTK&quot;</span><span style="color: #000000; ">);
+rec.update(conn);
+</span><span class="style1">int</span> depId = rec.getInt(db.DEPARTMENTS.DEPARTMENT_ID); <span style="color: #000000; ">
+
+</span><span style="color: #008000; ">//</span><span style="color: #008000; "> Insert an Employee</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">DBRecord rec </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> DBRecord();
+rec.create(db.EMPLOYEES);
+rec.setValue(db.EMPLOYEES.FIRSTNAME, </span><span class="style1">&quot;Peter</span><span style="color: #000000; ">&quot;);
+rec.setValue(db.EMPLOYEES.LASTNAME, </span><span class="style1">&quot;Sharp&quot;</span><span style="color: #000000; ">);
+rec.setValue(db.EMPLOYEES.GENDER, </span><span class="style1">&quot;M</span><span style="color: #000000; ">&quot;);
+rec.setValue(db.EMPLOYEES.DEPARTMENT_ID, </span><span style="color: #000000; ">depId</span><span style="color: #000000; ">);
+rec.update(conn);
+</span></pre>
+			<p>For the above code Empire-db generates 
+			and executes the following insert statements:</p>
+		
+<pre><span style="color: #0000FF; ">INSERT</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">INTO</span><span style="color: #000000; "> DEPARTMENTS( DEPARTMENT_ID, NAME, BUSINESS_UNIT, UPDATE_TIMESTAMP) 
+</span><span style="color: #0000FF; ">VALUES</span><span style="color: #000000; "> ( </span><span style="color: #800000; font-weight: bold; ">2</span><span style="color: #000000; ">, </span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">Development</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">, </span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">ITTK</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">, </span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">2008-01-08 07:31:11.120</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">)
+
+</span><span style="color: #0000FF; ">INSERT</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">INTO</span><span style="color: #000000; "> EMPLOYEES( EMPLOYEE_ID, FIRSTNAME, LASTNAME, DEPARTMENT_ID, GENDER, RETIRED, UPDATE_TIMESTAMP) 
+</span><span style="color: #0000FF; ">VALUES</span><span style="color: #000000; "> ( </span><span style="color: #800000; font-weight: bold; ">1</span><span style="color: #000000; ">, </span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">Peter</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">, </span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">Sharp</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">, </span><span style="color: #800000; font-weight: bold; ">1</span><span style="color: #000000; ">, </span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">M</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">, </span><span style="color: #800000; font-weight: bold; ">0</span><span style="color: #000000; ">, </span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">2008-01-08 07:31:11.151</span><span style="color: #FF0
 000; ">'</span><span style="color: #000000; ">)
+</span></pre>						
+    							<p>
+									The database driver creates the ID values 
+									automatically using either sequences 
+									provided by the target DBMS or by using a 
+									special internal table for sequence number 
+									generation. The decision how sequence 
+									numbers are generated is the responsibility 
+									of the DBDatabaseDriver used.</p>
+			<p>
+									If an update timestamp field has been 
+									declared for the 
+									table, it is automatically managed by 
+									Empire-db and used for optimistic locking.</p>
+								
+								<h2>Step 7 – Update data records</h2>
+								<p>
+									Step seven demonstrates how to update records. 
+									The following code gives an example of how to update 
+									an employee&#39;s phone number.
+								</p>
+								
+<pre><span style="color: #008000; ">//</span><span style="color: #008000; "> Update an Employee</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">DBRecord rec </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> DBRecord();
+rec.read(db.EMPLOYEES, idPers, conn);
+rec.setValue(db.EMPLOYEES.PHONE_NUMBER, </span><span class="style1">&quot;+49-7531-457160&quot;</span><span style="color: #000000; ">);
+rec.update(conn);</span></pre>	
+							
+								<p>For this code Empire-db generates the following 
+								update statement:</p>
+								
+<pre><span style="color: #0000FF; ">UPDATE</span><span style="color: #000000; "> EMPLOYEES
+</span><span style="color: #0000FF; ">SET</span><span style="color: #000000; "> PHONE_NUMBER</span><span style="color: #808080; ">=</span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">+49-7531-457160</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">, 
+    UPDATE_TIMESTAMP</span><span style="color: #808080; ">=</span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">2008-01-08 07:31:11.183</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">
+</span><span style="color: #0000FF; ">WHERE</span><span style="color: #000000; "> EMPLOYEE_ID</span><span style="color: #808080; ">=</span><span style="color: #800000; font-weight: bold; ">1</span><span style="color: #000000; "> </span><span style="color: #808080; ">AND</span><span style="color: #000000; "> UPDATE_TIMESTAMP</span><span style="color: #808080; ">=</span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">2008-01-08 07:31:11.150</span><span style="color: #FF0000; ">'</span><span style="color: #000000; "></span></pre>								
+								<p>Important issues to notice:</p>
+								<ol>
+									<li>
+										Only changed fields are updated in the database. 
+										You may check the modification status of 
+										the record or an individual field at any 
+										time and react on it if necessary.</li>
+									<li>The update timestamp is generated automatically. 
+									By using a constraint on the timestamp 
+									column, Empire-db 
+									checks whether the record has been 
+									concurrently changed by another user. </li>
+									<li>
+										You may extend the DBRecord by creating 
+										special entity record classes for your 
+										database entities. This will not only 
+										provide further type-safety but also 
+										allows you to add new methods or 
+										override existing ones for custom 
+										behaviour.</li>
+								</ol>
+
+								<h2>Step 8 – Perform a query and access the 
+								results</h2>
+								<p>
+									Finally, this step shows how to perform a 
+									database query and how to access the query 
+									results.</p>
+			<p>
+									For our&nbsp; example we query some 
+									employee fields from the database. The 
+									LASTNAME and FIRSTNAME fields are 
+									concatenated to provide us with the full 
+									name of the employee. Additionally we join 
+									the Departments table in order to 
+									retrieve the name of the department an employee 
+									belongs to. Finally we add constraints and 
+									the order in which we want the data to be 
+									supplied from the DBMS.</p>
+			<p>
+									In order to create this statement we need a DBCommand object. This can be obtained from 
+									our database object. The command object 
+									offers methods whose names match those of the SQL keywords select, where, 
+									group by, having and order by. There is no 
+									need to specify which table we want to 
+									access our data from. However joins must be 
+									manually declared using the join() method. 
+									The final code looks as follows:</p>
+								
+<pre><span style="color: #008000; ">//</span><span style="color: #008000; "> Define the query</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">DBCommand cmd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> db.createCommand();
+DBColumnExpr EMPLOYEE_FULLNAME</span><span style="color: #000000; ">=</span><span style="color: #000000; "> db.EMPLOYEES.LASTNAME.append(</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">, </span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">)
+                        .append(db.EMPLOYEES.FIRSTNAME).as(</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">FULL_NAME</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">);
+</span><span style="color: #008000; ">//</span><span style="color: #008000; "> Select required columns</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">cmd.select(db.EMPLOYEES.EMPLOYEE_ID, EMPLOYEE_FULLNAME);
+cmd.select(db.EMPLOYEES.GENDER, db.EMPLOYEES.PHONE_NUMBER);
+cmd.select(db.DEPARTMENTS.NAME.as(</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">DEPARTMENT</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">));
+cmd.select(db.DEPARTMENTS.BUSINESS_UNIT);
+</span><span style="color: #008000; ">//</span><span style="color: #008000; "> Set Joins</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">cmd.join(db.EMPLOYEES.DEPARTMENT_ID, db.DEPARTMENTS.DEPARTMENT_ID);
+</span><span style="color: #008000; ">//</span><span style="color: #008000; "> Set contraints and order</span><span style="color: #008000; ">
+</span><span style="color: #000000; ">cmd.where(EMP.LASTNAME.length().isGreaterThan(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">));
+cmd.orderBy(EMP.LASTNAME);</span></pre>
+									<p>This will then generate the following SQL 
+									select statement:</p>
+									
+<pre><span style="color: #0000FF; ">SELECT</span><span style="color: #000000; "> t2.EMPLOYEE_ID, t2.LASTNAME </span><span style="color: #808080; ">+</span><span style="color: #000000; "> </span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">, </span><span style="color: #FF0000; ">'</span><span style="color: #000000; "> </span><span style="color: #808080; ">+</span><span style="color: #000000; "> t2.FIRSTNAME </span><span style="color: #0000FF; ">AS</span><span style="color: #000000; "> FULL_NAME, t2.GENDER, t2.PHONE_NUMBER, 
+    t1.NAME </span><span style="color: #0000FF; ">AS</span><span style="color: #000000; "> DEPARTMENT, t1.BUSINESS_UNIT
+</span><span style="color: #0000FF; ">FROM</span><span style="color: #000000; "> EMPLOYEES t2 </span><span style="color: #0000FF; ">INNER</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">JOIN</span><span style="color: #000000; "> DEPARTMENTS t1 </span><span style="color: #0000FF; ">ON</span><span style="color: #000000; "> t1.DEPARTMENT_ID </span><span style="color: #808080; ">=</span><span style="color: #000000; "> t2.DEPARTMENT_ID
+</span><span style="color: #0000FF; ">WHERE</span><span style="color: #000000; "> </span><span style="color: #FF00FF; ">len</span><span style="color: #000000; ">(t2.LASTNAME)</span><span style="color: #808080; ">&gt;</span><span style="color: #800000; font-weight: bold; ">0</span><span style="color: #000000; "> 
+</span><span style="color: #0000FF; ">ORDER</span><span style="color: #000000; "> t2.LASTNAME</span></pre>    							<p>Important 
+			issues 
+			to notice:</p>
+								<ol>
+									<li>
+										As you can see, except for column 
+										renaming, no string literals are 
+										necessary to create the query. This 
+										ensures maximum compile-time safety. The 
+										code is also portable and not tied to a 
+										particular DBMS. 
+									</li>
+									<li>
+										Constraints for filtering can easily be 
+										added using the command&#39;s <code>where()</code> method, 
+										which may be called any 
+										number of times. This allows to easily 
+										add constraints conditionally without affecting code 
+										readability as with string operations.  
+									</li>
+									<li>
+									When creating your command all required 
+									table and column objects as well as SQL 
+									functions can easily be added using the 
+									IDE&#39;s code completion, which always gives you 
+									a selection of available objects. This 
+									prevents you from making typing mistakes and improves 
+									your productivity.</li>
+								</ol>
+								<p>
+									Finally we need to execute the query and 
+									print our query results. For the latter we 
+									show three different options for doing this:</p>
+								<ol>
+									<li>
+										Iterating through the results row by 
+										row.</li>
+									<li>
+										Fetching a list of JavaBean / POJO 
+										objects each containing the data of one 
+										result row. For this we will use the SampleBean 
+										class whose properties match 
+										the query result (see SampleBean.java).</li>
+									<li>
+										Obtaining an XML document element that 
+										contains the query results and even 
+										includes column metadata.</li>
+								</ol>
+									<p>Option 1: This code shows how to iterate 
+									and print the results row by row:</p>
+									
+<pre><font color="#008000">// Open the reader using command object
+</font><span style="color: #000000; ">DBReader reader = </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> DBReader();
+</span>reader.open(cmd, conn);
+<font color="#008000">// Text-Output by iterating through all records. 
+</font>while (reader.moveNext()) { 
+    System.out.println(reader.getString(EMP.EMPLOYEE_ID)
+              + &quot;\t&quot; + reader.getString(EMPLOYEE_FULLNAME)
+              + &quot;\t&quot; + EMP.GENDER.getOptions().get(reader.getString(EMP.GENDER))
+              + &quot;\t&quot; + reader.getString(DEP.NAME));
+}</pre>
+									<p>Option 2: This code shows how to fetch a 
+									list of sample beans:</p>
+									
+<pre><font color="#008000">// Open the reader using command object
+</font><span style="color: #000000; ">DBReader reader = </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> DBReader();
+</span>reader.open(cmd, conn);
+<font color="#008000">// Text-Output using a list of Java Beans supplied by the DBReader 
+</font>List&lt;SampleBean&gt; beanList = reader.getBeanList(SampleBean.class);
+for (SampleBean b : beanList) { 
+    System.out.println(b.toString());
+}</pre>
+									<p>Option 3: To obtain the result as 
+									an XML document the following code is required:</p>
+			<pre><span style="color: #008000; ">// Open reader
+</span><span style="color: #000000; ">DBReader reader = </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> DBReader();
+reader.open(cmd, conn);
+</span><span style="color: #008000; ">// XML output
+</span><span style="color: #000000; ">Document doc = reader.getXmlDocument();
+</span><span style="color: #008000; ">// Print XML document to System.out
+</span><span style="color: #000000; ">XMLWriter.debug(doc);</span></pre>		
+			<p>
+									The XML document obtained by the above code 
+									looks like this:
+								</p>
+								
+<pre><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">rowset</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">column </span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">=&quot;1&quot;</span><span style="color: #FF0000; "> mandatory</span><span style="color: #0000FF; ">=&quot;1&quot;</span><span style="color: #FF0000; "> name</span><span style="color: #0000FF; ">=&quot;EMPLOYEE_ID&quot;</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">column</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">column </span><span style="color: #FF0000; ">mandatory</span><span style="color: #0000FF; ">=&quot;1&quot;</span><span style="color: #FF0000; "> name</span><span style="color: #0000FF; ">=&quot;FULL_NAME&quot;</span><span style="color: #FF0000; "> size</span><span style="color: #0000FF; ">=&quot;40&quot;</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">column</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">column </span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">=&quot;GENDER&quot;</span><span style="color: #FF0000; "> size</span><span style="color: #0000FF; ">=&quot;1&quot;</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">option </span><span style="color: #FF0000; ">value</span><span style="color: #0000FF; ">=&quot;M&quot;</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">Male</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">option</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">option </span><span style="color: #FF0000; ">value</span><span style="color: #0000FF; ">=&quot;F&quot;</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">Female</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">option</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">column</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">column </span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">=&quot;PHONE_NUMBER&quot;</span><span style="color: #FF0000; "> size</span><span style="color: #0000FF; ">=&quot;40&quot;</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">column</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">column </span><span style="color: #FF0000; ">mandatory</span><span style="color: #0000FF; ">=&quot;1&quot;</span><span style="color: #FF0000; "> name</span><span style="color: #0000FF; ">=&quot;DEPARTMENT&quot;</span><span style="color: #FF0000; "> size</span><span style="color: #0000FF; ">=&quot;80&quot;</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">column</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">column </span><span style="color: #FF0000; ">mandatory</span><span style="color: #0000FF; ">=&quot;1&quot;</span><span style="color: #FF0000; "> name</span><span style="color: #0000FF; ">=&quot;BUSINESS_UNIT&quot;</span><span style="color: #FF0000; "> size</span><span style="color: #0000FF; ">=&quot;4&quot;</span><span style="color: #0000FF; ">&gt;&lt;/</span><span style="color: #800000; ">column</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">row</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">EMPLOYEE_ID</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">41</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">EMPLOYEE_ID</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">FULL_NAME</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">Bloggs, Fred</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">FULL_NAME</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">GENDER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">M</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">GENDER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">PHONE_NUMBER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">+49-5555-505050</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">PHONE_NUMBER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">DEPARTMENT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">Development</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">DEPARTMENT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">BUSINESS_UNIT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">ITTK</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">BUSINESS_UNIT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">row</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">row</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">EMPLOYEE_ID</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">40</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">EMPLOYEE_ID</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">FULL_NAME</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">Sharp, Peter</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">FULL_NAME</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">GENDER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">M</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">GENDER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">PHONE_NUMBER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">+49-7531-457160</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">PHONE_NUMBER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">DEPARTMENT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">Development</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">DEPARTMENT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">BUSINESS_UNIT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">ITTK</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">BUSINESS_UNIT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">row</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">row</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">EMPLOYEE_ID</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">42</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">EMPLOYEE_ID</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">FULL_NAME</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">White, Emma</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">FULL_NAME</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">GENDER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">F</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">GENDER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">PHONE_NUMBER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">+49-040-125486</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">PHONE_NUMBER</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">DEPARTMENT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">Sale</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">DEPARTMENT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+        </span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">BUSINESS_UNIT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">ITTK</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">BUSINESS_UNIT</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+    </span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">row</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">
+</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">rowset</span><span style="color: #0000FF; ">&gt;</span></pre>		
+			<p>
+			This XML can easily be transformed to another syntax by applying 
+			XSLT transformations. The metadata supplied here can be crucial for 
+			these transformations. Besides the metadata provided here even more and custom metadata may easily be 
+			added through column attributes.</p>
+		
+		<h1>Download the code of this sample</h1>
+		<p> We hope you have enjoyed this tutorial and you now feel 
+		confident that using Empire-db is simple and smart. If you have not 
+		already done so, you may now download and run the sample application, 
+		and play around with it.<br />
+		<a href="#">Download</a></p>
+			<!-- #EndEditable --></div>
+					
+			<div id="nav">
+				<hr />
+				<div id="nav_prev">
+					<a id="prev" href=""><img src="../images/prev.gif" alt="" /> Previous Page</a> 
+					&nbsp;
+				</div>
+				<div id="nav_next">
+					&nbsp;
+					<a id="next" href="">Next Page 
+					<img src="../images/next.gif" alt="" /></a>
+				</div>
+				<div style="clear: both;"></div>
+			</div>
+			
+			<script type="text/javascript">
+			/* <![CDATA[ */
+				if( ( typeof(prev_page) == "undefined" || prev_page == "" ) &&
+					( typeof(next_page) == "undefined" || next_page == "" ) ) 
+				{
+					$( 'nav' ).hide();
+				}
+				else 
+				{			
+					if( typeof(prev_page) != "undefined" && prev_page != "" ) {
+						$( 'prev' ).href = prev_page;
+						$( 'prev' ).show();
+					}
+					else {
+						$( 'prev' ).hide();
+					}
+					
+					if( typeof(next_page) != "undefined" && next_page !="" ) {
+						$( 'next' ).href = next_page;
+						$( 'next' ).show();
+					}
+					else {
+						$( 'next' ).hide();
+					}
+				}
+			/* ]]> */
+			</script>
+
+		</div>
+
+	</div>
+	
+	<!-- Footer -->		
+	<div id="footer">
+		<small>Copyright &copy; 2008, The Apache Software Foundation</small>&nbsp;<!--<p style="padding-right: 25px; text-align: right;">
+	    <a href="http://validator.w3.org/check?uri=referer">
+		<img
+	        src="images/valid-xhtml10.png"
+	        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
+	 	</p>--></div>
+
+</div>
+
+</body>
+<!-- #EndTemplate -->
+</html>
\ No newline at end of file

Propchange: incubator/empire-db/site/documentation/tutorial.htm
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/empire-db/site/downloads/downloads.htm
URL: http://svn.apache.org/viewvc/incubator/empire-db/site/downloads/downloads.htm?rev=681719&view=auto
==============================================================================
--- incubator/empire-db/site/downloads/downloads.htm (added)
+++ incubator/empire-db/site/downloads/downloads.htm Fri Aug  1 08:15:26 2008
@@ -0,0 +1,271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" >
+<!-- #BeginTemplate "../main.dwt" -->
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta http-equiv="language" content="en" />
+	<meta name="robots" content="index, follow" />
+	<meta name="keywords" content="java, jar, jdbc, sql, data, metadata, persistence, rdbms, orm, mapping" />
+	<meta name="description" content="Open Source relational data persistence component." />
+	
+	<!-- #BeginEditable "doctitle" -->
+<title>Empire-db - Downloads</title>
+	<!-- #EndEditable -->
+	
+	<script type="text/javascript" src="../js/prototype.js"></script>
+	<script type="text/javascript" src="../js/menu.js"></script>
+	<!-- #BeginEditable "javascripts" -->
+	<!-- #EndEditable -->
+	
+	<link rel="shortcut icon" href="../empire-db.ico" />
+	<link rel="stylesheet" href="../css/layout.css" type="text/css" />
+	<!-- #BeginEditable "stylesheets" -->
+<style type="text/css">
+table.downloads {
+	margin-left: 100px;
+}
+
+table.downloads th.package {
+	width: 180px;
+}
+
+table.downloads th.comment {
+	width: 130px;
+}
+
+table.downloads td.md5 {
+	text-align: center;
+}
+</style>
+	<!-- #EndEditable -->
+</head>
+
+<body>
+<div id="wrapper">
+
+	<!-- Header -->
+	<div id="header">
+		<div id="logo">
+			<img src="../images/logos/empire-db-logo.gif" alt="Empire-db: The relational data persistence component." />
+		</div>
+		<div id="asf">
+			<a target="_blank" href="http://incubator.apache.org/">
+			<img src="../images/logos/apache-incubator-logo.png" alt="Apache Incubator" /></a>
+		</div>
+		<div style="clear:both"></div>
+	</div>
+	
+	<!-- Top -->
+	<div id="top">
+		<div id="topbar">&nbsp;</div>
+	</div>
+	
+	<!-- Middle -->
+	<div id="middle">
+		<div id="left">    
+				<div id="menuBox">     
+					<ul id="mainMenu">
+						<li id="menu_home"><a href="../index.html">Home</a></li>
+						<li id="menu_news"><a href="../news.htm">News</a></li>
+						<li id="menu_empiredb">
+						<a href="../empiredb/empiredb.htm">Empire-db</a>
+								<ul class="subMenu">
+									<li id="menu_empiredb_extending_pattern">
+									<a href="../empiredb/pattern.htm">The Empire DAO-<br />pattern</a></li>
+									<li id="menu_empiredb_handling_metadata">
+									<a href="../empiredb/metadata.htm">Handling data and metadata</a></li>
+									<li id="menu_empiredb_wrong">
+									<a href="../empiredb/hibernate.htm">What's wrong with Hibernate and JPA</a></li>
+									<li id="menu_empiredb_stringfree">
+									<a href="../empiredb/stringfree.htm">The principle of<br/>string-free coding</a></li>
+									<li id="menu_empiredb_faq">
+									<a href="../empiredb/faq.htm">FAQ</a></li>
+								</ul>
+						</li>
+						<li id="menu_struts2ext">
+						<a href="../struts2ext/struts2ext.htm">Empire-db and Struts2</a>
+							<ul class="subMenu">
+								<li id="menu_struts2ext_forms_controls">
+								<a href="../struts2ext/forms_controls.htm">Forms and controls</a></li>
+								<li id="menu_struts2ext_rendering_parsing">
+								<a href="../struts2ext/rendering_parsing.htm">Rendering and parsing</a></li>
+								<!--<li id="menu_struts2ext_tag_reference"><a href="struts2ext/tag_reference.htm">Tag reference</a></li>-->
+								<li id="menu_struts2ext_input_controls">
+								<a href="../struts2ext/input_controls.htm">Input controls</a></li>
+							</ul>
+						</li>
+						<li id="menu_downloads"><a href="downloads.htm">Downloads</a>
+								<ul class="subMenu">
+									<li id="menu_downloads_license">
+									<a href="license.htm">License</a></li>
+								</ul>
+						</li>
+						<li id="menu_documentation">
+						<a href="../documentation/documentation.htm">Documentation</a>					
+							<ul class="subMenu">
+								<li id="menu_documentation_class_overview">
+								<a href="../documentation/class_overview.htm">Empire-db class<br />overview</a></li>
+								<li id="menu_documentation_tutorials">
+								<a href="../documentation/tutorial.htm">Tutorial</a></li>
+								<li id="menu_documentation_getting_started">
+								<a href="../documentation/getting_started.htm">Getting started</a></li>
+								<li id="menu_documentation_api">
+								<a href="../documentation/api.htm">API</a></li>
+							</ul>
+						</li>
+						<li id="menu_community">
+						<a href="../community/community.htm">Community</a>					
+							<ul class="subMenu">
+								<li id="menu_community_mailing_lists">
+								<a href="../community/mailing_lists.htm">Mailing lists</a></li>
+								<!--<li id="menu_community_source_code"><a href="community/source_code.htm">Source code</a></li>-->
+								<li id="menu_community_jira">
+								<a href="../community/jira.htm">Ticketing system</a></li>
+								<!--<li id="menu_community_road_map"><a href="community/road_map.htm">Road map</a></li>-->
+								<li id="menu_community_contributors">
+								<a href="../community/contributors.htm">Contributors</a></li>
+							</ul>
+						</li>
+						<li id="menu_disclaimer"><a href="../disclaimer.htm">Disclaimer</a></li>
+					</ul>
+				</div>
+				
+		</div>
+	
+		<!-- #BeginEditable "menu" -->	
+	<script type="text/javascript">
+		var menu = new Menu( 'mainMenu', 'menu_downloads' );
+	</script>
+		<!-- #EndEditable -->
+		<script type="text/javascript">
+			/* <![CDATA[ */
+			if( menu ) {
+				// Menu fully opened (comment out if not wanted)
+				// menu.openAll();
+			/* ]]> */
+			}
+		</script>
+	
+		<div id="main">		
+			
+			<div id="pathway">
+			<!-- #BeginEditable "pathway" -->
+	        	Downloads
+	        <!-- #EndEditable -->
+	        </div>
+			
+			<div id="content">
+			<!-- #BeginEditable "content" -->
+		    <!--<h1>Downloads</h1>-->
+			<h1>Empire-db</h1>
+			<p>These packages include the Empire-db relational data persistence component binaries, source code, 
+			API-documentation, sample and tutorial projects.</p>
+			<table class="downloads">
+				<thead>
+					<tr><th class="package">Package</th><th>Version</th><th>Release date</th><th>Size</th>
+						<th class="comment">Comment</th><th>MD5</th></tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td><a href="http://heanet.dl.sourceforge.net/sourceforge/empire-db/empire-db-2.0.2.zip">empire-db-2.0.2.zip</a></td><td>
+						2.0.2</td><td>06.07.2008</td><td>5 MB</td><td>For Java 5</td><td class="md5"><img src="../images/md5.gif" alt="f016482658a19760b05ad253c20fe6c8" onclick="alert('f016482658a19760b05ad253c20fe6c8')" /></td>
+					</tr>
+					<tr><td><a href="http://heanet.dl.sourceforge.net/sourceforge/empire-db/empire-db-1.4.2.zip">empire-db-1.4.2.zip</a></td><td>
+						1.4.2</td><td>11.01.2008</td><td>3,5 MB</td><td>For Java 1.4</td><td class="md5"><img src="../images/md5.gif" alt="a06173511455b113e7bb06506dff97e5" onclick="alert('a06173511455b113e7bb06506dff97e5')" /></td>
+					</tr>
+				</tbody>	
+			</table>
+
+        	<h1>Empire-Struts2-Extension</h1>
+			<p>These packages include the Empire-Struts2-Extensions binaries, source code, 
+			API-documentation, sample and tutorial projects.</p>
+			<table class="downloads">
+				<thead>
+					<tr><th class="package">Package</th><th>Version</th><th>Release date</th><th>Size</th>
+						<th class="comment">Comment</th><th>MD5</th></tr>
+				</thead>
+				<tbody>
+					<tr><td><a href="http://heanet.dl.sourceforge.net/sourceforge/empire-db/empire-struts2-ext-1.0.2.zip">empire-struts2-ext-1.0.2.zip</a></td><td>
+						1.0.2</td><td>
+						06.07.2008</td><td>11 MB</td><td></td><td class="md5"><img src="../images/md5.gif"  alt="3024811f18c404e66449a77940a8cf6c" onclick="alert('3024811f18c404e66449a77940a8cf6c')" /></td></tr>
+				</tbody>	
+			</table>
+
+			<p style="margin-top:50px">Previous versions and different download mirrors can be found on <a href="http://sourceforge.net/projects/empire-db">SourceForge.net</a></p>
+
+        	<!--<h1>API Specifications</h1>
+        	        				
+			<table class="downloads">
+				<thead>
+					<tr><th class="package">Package</th><th>Version</th><th>Release date</th><th>Size</th>
+						<th class="comment">Comment</th><th>MD5</th></tr>
+				</thead>
+				<tbody>
+					<tr><td><a href="Empire-db-API.zip">Empire-db-API.zip</a></td><td>1.0</td><td>21.12.2007</td><td>627 KB</td><td></td><td class="md5"><a href="md5checksums.html"><img src="../images/md5.gif" alt="MD5" /></a></td></tr>
+					<tr><td><a href="Empire-db-API.zip">EmpireStruts2Ext-API.zip</a></td><td>1.0</td><td>21.12.2007</td><td>627 KB</td><td></td><td class="md5"><a href="md5checksums.html"><img src="../images/md5.gif" alt="MD5" /></a></td></tr>
+				</tbody>	
+			</table>-->
+
+
+			<!-- #EndEditable --></div>
+					
+			<div id="nav">
+				<hr />
+				<div id="nav_prev">
+					<a id="prev" href=""><img src="../images/prev.gif" alt="" /> Previous Page</a> 
+					&nbsp;
+				</div>
+				<div id="nav_next">
+					&nbsp;
+					<a id="next" href="">Next Page 
+					<img src="../images/next.gif" alt="" /></a>
+				</div>
+				<div style="clear: both;"></div>
+			</div>
+			
+			<script type="text/javascript">
+			/* <![CDATA[ */
+				if( ( typeof(prev_page) == "undefined" || prev_page == "" ) &&
+					( typeof(next_page) == "undefined" || next_page == "" ) ) 
+				{
+					$( 'nav' ).hide();
+				}
+				else 
+				{			
+					if( typeof(prev_page) != "undefined" && prev_page != "" ) {
+						$( 'prev' ).href = prev_page;
+						$( 'prev' ).show();
+					}
+					else {
+						$( 'prev' ).hide();
+					}
+					
+					if( typeof(next_page) != "undefined" && next_page !="" ) {
+						$( 'next' ).href = next_page;
+						$( 'next' ).show();
+					}
+					else {
+						$( 'next' ).hide();
+					}
+				}
+			/* ]]> */
+			</script>
+
+		</div>
+
+	</div>
+	
+	<!-- Footer -->		
+	<div id="footer">
+		<small>Copyright &copy; 2008, The Apache Software Foundation</small>&nbsp;<!--<p style="padding-right: 25px; text-align: right;">
+	    <a href="http://validator.w3.org/check?uri=referer">
+		<img
+	        src="images/valid-xhtml10.png"
+	        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
+	 	</p>--></div>
+
+</div>
+
+</body>
+<!-- #EndTemplate -->
+</html>
\ No newline at end of file

Propchange: incubator/empire-db/site/downloads/downloads.htm
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/empire-db/site/downloads/license.htm
URL: http://svn.apache.org/viewvc/incubator/empire-db/site/downloads/license.htm?rev=681719&view=auto
==============================================================================
--- incubator/empire-db/site/downloads/license.htm (added)
+++ incubator/empire-db/site/downloads/license.htm Fri Aug  1 08:15:26 2008
@@ -0,0 +1,418 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" >
+<!-- #BeginTemplate "../main.dwt" -->
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta http-equiv="language" content="en" />
+	<meta name="robots" content="index, follow" />
+	<meta name="keywords" content="java, jar, jdbc, sql, data, metadata, persistence, rdbms, orm, mapping" />
+	<meta name="description" content="Open Source relational data persistence component." />
+	
+	<!-- #BeginEditable "doctitle" -->
+<title>Empire-db - Downloads - License</title>
+	<!-- #EndEditable -->
+	
+	<script type="text/javascript" src="../js/prototype.js"></script>
+	<script type="text/javascript" src="../js/menu.js"></script>
+	<!-- #BeginEditable "javascripts" -->
+	<!-- #EndEditable -->
+	
+	<link rel="shortcut icon" href="../empire-db.ico" />
+	<link rel="stylesheet" href="../css/layout.css" type="text/css" />
+	<!-- #BeginEditable "stylesheets" -->
+<style type="text/css">
+table.downloads {
+	margin-left: 100px;
+}
+
+table.downloads th.package {
+	width: 180px;
+}
+
+table.downloads th.comment {
+	width: 130px;
+}
+
+table.downloads td.md5 {
+	text-align: center;
+}
+</style>
+	<!-- #EndEditable -->
+</head>
+
+<body>
+<div id="wrapper">
+
+	<!-- Header -->
+	<div id="header">
+		<div id="logo">
+			<img src="../images/logos/empire-db-logo.gif" alt="Empire-db: The relational data persistence component." />
+		</div>
+		<div id="asf">
+			<a target="_blank" href="http://incubator.apache.org/">
+			<img src="../images/logos/apache-incubator-logo.png" alt="Apache Incubator" /></a>
+		</div>
+		<div style="clear:both"></div>
+	</div>
+	
+	<!-- Top -->
+	<div id="top">
+		<div id="topbar">&nbsp;</div>
+	</div>
+	
+	<!-- Middle -->
+	<div id="middle">
+		<div id="left">    
+				<div id="menuBox">     
+					<ul id="mainMenu">
+						<li id="menu_home"><a href="../index.html">Home</a></li>
+						<li id="menu_news"><a href="../news.htm">News</a></li>
+						<li id="menu_empiredb">
+						<a href="../empiredb/empiredb.htm">Empire-db</a>
+								<ul class="subMenu">
+									<li id="menu_empiredb_extending_pattern">
+									<a href="../empiredb/pattern.htm">The Empire DAO-<br />pattern</a></li>
+									<li id="menu_empiredb_handling_metadata">
+									<a href="../empiredb/metadata.htm">Handling data and metadata</a></li>
+									<li id="menu_empiredb_wrong">
+									<a href="../empiredb/hibernate.htm">What's wrong with Hibernate and JPA</a></li>
+									<li id="menu_empiredb_stringfree">
+									<a href="../empiredb/stringfree.htm">The principle of<br/>string-free coding</a></li>
+									<li id="menu_empiredb_faq">
+									<a href="../empiredb/faq.htm">FAQ</a></li>
+								</ul>
+						</li>
+						<li id="menu_struts2ext">
+						<a href="../struts2ext/struts2ext.htm">Empire-db and Struts2</a>
+							<ul class="subMenu">
+								<li id="menu_struts2ext_forms_controls">
+								<a href="../struts2ext/forms_controls.htm">Forms and controls</a></li>
+								<li id="menu_struts2ext_rendering_parsing">
+								<a href="../struts2ext/rendering_parsing.htm">Rendering and parsing</a></li>
+								<!--<li id="menu_struts2ext_tag_reference"><a href="struts2ext/tag_reference.htm">Tag reference</a></li>-->
+								<li id="menu_struts2ext_input_controls">
+								<a href="../struts2ext/input_controls.htm">Input controls</a></li>
+							</ul>
+						</li>
+						<li id="menu_downloads"><a href="downloads.htm">Downloads</a>
+								<ul class="subMenu">
+									<li id="menu_downloads_license">
+									<a href="license.htm">License</a></li>
+								</ul>
+						</li>
+						<li id="menu_documentation">
+						<a href="../documentation/documentation.htm">Documentation</a>					
+							<ul class="subMenu">
+								<li id="menu_documentation_class_overview">
+								<a href="../documentation/class_overview.htm">Empire-db class<br />overview</a></li>
+								<li id="menu_documentation_tutorials">
+								<a href="../documentation/tutorial.htm">Tutorial</a></li>
+								<li id="menu_documentation_getting_started">
+								<a href="../documentation/getting_started.htm">Getting started</a></li>
+								<li id="menu_documentation_api">
+								<a href="../documentation/api.htm">API</a></li>
+							</ul>
+						</li>
+						<li id="menu_community">
+						<a href="../community/community.htm">Community</a>					
+							<ul class="subMenu">
+								<li id="menu_community_mailing_lists">
+								<a href="../community/mailing_lists.htm">Mailing lists</a></li>
+								<!--<li id="menu_community_source_code"><a href="community/source_code.htm">Source code</a></li>-->
+								<li id="menu_community_jira">
+								<a href="../community/jira.htm">Ticketing system</a></li>
+								<!--<li id="menu_community_road_map"><a href="community/road_map.htm">Road map</a></li>-->
+								<li id="menu_community_contributors">
+								<a href="../community/contributors.htm">Contributors</a></li>
+							</ul>
+						</li>
+						<li id="menu_disclaimer"><a href="../disclaimer.htm">Disclaimer</a></li>
+					</ul>
+				</div>
+				
+		</div>
+	
+		<!-- #BeginEditable "menu" -->	
+	<script type="text/javascript">
+		var menu = new Menu( 'mainMenu', 'menu_downloads', 'menu_downloads_license' );
+	</script>
+		<!-- #EndEditable -->
+		<script type="text/javascript">
+			/* <![CDATA[ */
+			if( menu ) {
+				// Menu fully opened (comment out if not wanted)
+				// menu.openAll();
+			/* ]]> */
+			}
+		</script>
+	
+		<div id="main">		
+			
+			<div id="pathway">
+			<!-- #BeginEditable "pathway" -->
+	        	<a href="downloads.htm">Downloads</a> &raquo; License
+	        <!-- #EndEditable -->
+	        </div>
+			
+			<div id="content">
+			<!-- #BeginEditable "content" -->
+		    <!--<h1>Downloads</h1>-->
+			<h1>Apache License Version 2.0, January 2004 <a href="http://www.apache.org/licenses/">http://www.apache.org/licenses/</a></h1>
+			<p>
+			TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+			</p>
+			<p><b><a name="definitions">1. Definitions</a></b>.</p>
+			<p>
+			      "License" shall mean the terms and conditions for use, reproduction,
+			      and distribution as defined by Sections 1 through 9 of this document.
+			</p>
+			<p>
+			      "Licensor" shall mean the copyright owner or entity authorized by
+			      the copyright owner that is granting the License.
+			</p>
+			
+			<p>
+			      "Legal Entity" shall mean the union of the acting entity and all
+			      other entities that control, are controlled by, or are under common
+			      control with that entity. For the purposes of this definition,
+			      "control" means (i) the power, direct or indirect, to cause the
+			      direction or management of such entity, whether by contract or
+			      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+			      outstanding shares, or (iii) beneficial ownership of such entity.
+			</p>
+			<p>
+			      "You" (or "Your") shall mean an individual or Legal Entity
+			      exercising permissions granted by this License.
+			</p>
+			<p>
+			      "Source" form shall mean the preferred form for making modifications,
+			      including but not limited to software source code, documentation
+			      source, and configuration files.
+			</p>
+			<p>
+			      "Object" form shall mean any form resulting from mechanical
+			      transformation or translation of a Source form, including but
+			      not limited to compiled object code, generated documentation,
+			      and conversions to other media types.
+			</p>
+			<p>
+			
+			      "Work" shall mean the work of authorship, whether in Source or
+			      Object form, made available under the License, as indicated by a
+			      copyright notice that is included in or attached to the work
+			      (an example is provided in the Appendix below).
+			</p>
+			<p>
+			      "Derivative Works" shall mean any work, whether in Source or Object
+			      form, that is based on (or derived from) the Work and for which the
+			      editorial revisions, annotations, elaborations, or other modifications
+			      represent, as a whole, an original work of authorship. For the purposes
+			      of this License, Derivative Works shall not include works that remain
+			      separable from, or merely link (or bind by name) to the interfaces of,
+			      the Work and Derivative Works thereof.
+			</p>
+			<p>
+			      "Contribution" shall mean any work of authorship, including
+			      the original version of the Work and any modifications or additions
+			      to that Work or Derivative Works thereof, that is intentionally
+			      submitted to Licensor for inclusion in the Work by the copyright owner
+			      or by an individual or Legal Entity authorized to submit on behalf of
+			      the copyright owner. For the purposes of this definition, "submitted"
+			      means any form of electronic, verbal, or written communication sent
+			      to the Licensor or its representatives, including but not limited to
+			      communication on electronic mailing lists, source code control systems,
+			      and issue tracking systems that are managed by, or on behalf of, the
+			      Licensor for the purpose of discussing and improving the Work, but
+			      excluding communication that is conspicuously marked or otherwise
+			      designated in writing by the copyright owner as "Not a Contribution."
+			</p>
+			<p>
+			      "Contributor" shall mean Licensor and any individual or Legal Entity
+			      on behalf of whom a Contribution has been received by Licensor and
+			      subsequently incorporated within the Work.
+			</p>
+			<p><b><a name="copyright">2. Grant of Copyright License</a></b>.
+			Subject to the terms and conditions of
+			      this License, each Contributor hereby grants to You a perpetual,
+			      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+			      copyright license to reproduce, prepare Derivative Works of,
+			      publicly display, publicly perform, sublicense, and distribute the
+			      Work and such Derivative Works in Source or Object form.
+			
+			</p>
+			<p><b><a name="patent">3. Grant of Patent License</a></b>.
+			Subject to the terms and conditions of
+			      this License, each Contributor hereby grants to You a perpetual,
+			      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+			      (except as stated in this section) patent license to make, have made,
+			      use, offer to sell, sell, import, and otherwise transfer the Work,
+			      where such license applies only to those patent claims licensable
+			      by such Contributor that are necessarily infringed by their
+			      Contribution(s) alone or by combination of their Contribution(s)
+			      with the Work to which such Contribution(s) was submitted. If You
+			      institute patent litigation against any entity (including a
+			      cross-claim or counterclaim in a lawsuit) alleging that the Work
+			      or a Contribution incorporated within the Work constitutes direct
+			      or contributory patent infringement, then any patent licenses
+			      granted to You under this License for that Work shall terminate
+			      as of the date such litigation is filed.
+			</p>
+			<p><b><a name="redistribution">4. Redistribution</a></b>.
+			You may reproduce and distribute copies of the
+			      Work or Derivative Works thereof in any medium, with or without
+			      modifications, and in Source or Object form, provided that You
+			      meet the following conditions:
+			<ol type="a">
+			<li>You must give any other recipients of the Work or
+			          Derivative Works a copy of this License; and
+			<br /> <br /></li>
+			
+			<li>You must cause any modified files to carry prominent notices
+			          stating that You changed the files; and
+			<br /> <br /></li>
+			
+			<li>You must retain, in the Source form of any Derivative Works
+			          that You distribute, all copyright, patent, trademark, and
+			          attribution notices from the Source form of the Work,
+			          excluding those notices that do not pertain to any part of
+			          the Derivative Works; and
+			<br /> <br /></li>
+			
+			<li>If the Work includes a "NOTICE" text file as part of its
+			          distribution, then any Derivative Works that You distribute must
+			          include a readable copy of the attribution notices contained
+			          within such NOTICE file, excluding those notices that do not
+			          pertain to any part of the Derivative Works, in at least one
+			          of the following places: within a NOTICE text file distributed
+			          as part of the Derivative Works; within the Source form or
+			          documentation, if provided along with the Derivative Works; or,
+			          within a display generated by the Derivative Works, if and
+			          wherever such third-party notices normally appear. The contents
+			          of the NOTICE file are for informational purposes only and
+			          do not modify the License. You may add Your own attribution
+			          notices within Derivative Works that You distribute, alongside
+			          or as an addendum to the NOTICE text from the Work, provided
+			          that such additional attribution notices cannot be construed
+			          as modifying the License.</li>
+			</ol>
+			      You may add Your own copyright statement to Your modifications and
+			      may provide additional or different license terms and conditions
+			      for use, reproduction, or distribution of Your modifications, or
+			      for any such Derivative Works as a whole, provided Your use,
+			      reproduction, and distribution of the Work otherwise complies with
+			      the conditions stated in this License.
+			</p>
+			<p><b><a name="contributions">5. Submission of Contributions</a></b>.
+			Unless You explicitly state otherwise,
+			      any Contribution intentionally submitted for inclusion in the Work
+			      by You to the Licensor shall be under the terms and conditions of
+			      this License, without any additional terms or conditions.
+			      Notwithstanding the above, nothing herein shall supersede or modify
+			      the terms of any separate license agreement you may have executed
+			      with Licensor regarding such Contributions.
+			</p>
+			<p><b><a name="trademarks">6. Trademarks</a></b>.
+			This License does not grant permission to use the trade
+			      names, trademarks, service marks, or product names of the Licensor,
+			      except as required for reasonable and customary use in describing the
+			      origin of the Work and reproducing the content of the NOTICE file.
+			</p>
+			<p><b><a name="no-warranty">7. Disclaimer of Warranty</a></b>.
+			Unless required by applicable law or
+			      agreed to in writing, Licensor provides the Work (and each
+			      Contributor provides its Contributions) on an "AS IS" BASIS,
+			      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+			      implied, including, without limitation, any warranties or conditions
+			      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+			      PARTICULAR PURPOSE. You are solely responsible for determining the
+			      appropriateness of using or redistributing the Work and assume any
+			      risks associated with Your exercise of permissions under this License.
+			</p>
+			<p><b><a name="no-liability">8. Limitation of Liability</a></b>.
+			In no event and under no legal theory,
+			      whether in tort (including negligence), contract, or otherwise,
+			      unless required by applicable law (such as deliberate and grossly
+			      negligent acts) or agreed to in writing, shall any Contributor be
+			      liable to You for damages, including any direct, indirect, special,
+			      incidental, or consequential damages of any character arising as a
+			      result of this License or out of the use or inability to use the
+			      Work (including but not limited to damages for loss of goodwill,
+			      work stoppage, computer failure or malfunction, or any and all
+			      other commercial damages or losses), even if such Contributor
+			      has been advised of the possibility of such damages.
+			
+			</p>
+			<p><b><a name="additional">9. Accepting Warranty or Additional Liability</a></b>.
+			While redistributing
+			      the Work or Derivative Works thereof, You may choose to offer,
+			      and charge a fee for, acceptance of support, warranty, indemnity,
+			      or other liability obligations and/or rights consistent with this
+			      License. However, in accepting such obligations, You may act only
+			      on Your own behalf and on Your sole responsibility, not on behalf
+			      of any other Contributor, and only if You agree to indemnify,
+			      defend, and hold each Contributor harmless for any liability
+			      incurred by, or claims asserted against, such Contributor by reason
+			      of your accepting any such warranty or additional liability.
+			</p>
+			<!-- #EndEditable --></div>
+					
+			<div id="nav">
+				<hr />
+				<div id="nav_prev">
+					<a id="prev" href=""><img src="../images/prev.gif" alt="" /> Previous Page</a> 
+					&nbsp;
+				</div>
+				<div id="nav_next">
+					&nbsp;
+					<a id="next" href="">Next Page 
+					<img src="../images/next.gif" alt="" /></a>
+				</div>
+				<div style="clear: both;"></div>
+			</div>
+			
+			<script type="text/javascript">
+			/* <![CDATA[ */
+				if( ( typeof(prev_page) == "undefined" || prev_page == "" ) &&
+					( typeof(next_page) == "undefined" || next_page == "" ) ) 
+				{
+					$( 'nav' ).hide();
+				}
+				else 
+				{			
+					if( typeof(prev_page) != "undefined" && prev_page != "" ) {
+						$( 'prev' ).href = prev_page;
+						$( 'prev' ).show();
+					}
+					else {
+						$( 'prev' ).hide();
+					}
+					
+					if( typeof(next_page) != "undefined" && next_page !="" ) {
+						$( 'next' ).href = next_page;
+						$( 'next' ).show();
+					}
+					else {
+						$( 'next' ).hide();
+					}
+				}
+			/* ]]> */
+			</script>
+
+		</div>
+
+	</div>
+	
+	<!-- Footer -->		
+	<div id="footer">
+		<small>Copyright &copy; 2008, The Apache Software Foundation</small>&nbsp;<!--<p style="padding-right: 25px; text-align: right;">
+	    <a href="http://validator.w3.org/check?uri=referer">
+		<img
+	        src="images/valid-xhtml10.png"
+	        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
+	 	</p>--></div>
+
+</div>
+
+</body>
+<!-- #EndTemplate -->
+</html>
\ No newline at end of file

Propchange: incubator/empire-db/site/downloads/license.htm
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/empire-db/site/empire-db.ico
URL: http://svn.apache.org/viewvc/incubator/empire-db/site/empire-db.ico?rev=681719&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/empire-db/site/empire-db.ico
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream