diff --git a/.classpath b/.classpath
deleted file mode 100644
index 28ff882..0000000
--- a/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="test"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/GWT"/>
-	<classpathentry kind="lib" path="lib/jdbc-h2.jar"/>
-	<classpathentry kind="lib" path="lib/antlr.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="lib" path="lib/asm.jar" sourcepath="lib/asm_src.zip"/>
-	<classpathentry kind="output" path="classes"/>
-</classpath>
diff --git a/.gitignore b/.gitignore
index bbe8a66..903c6c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,4 @@
-/.bin
-/classes
-/lib/*_src.zip
-/lib/gwtorm.jar
-/config.mak
-/src/com/google/gwtorm/schema/Query.tokens
-/src/com/google/gwtorm/schema/QueryLexer.java
-/src/com/google/gwtorm/schema/QueryParser.java
-/src/com/google/gwtorm/schema/Query__.g
+/target
+/.classpath
+/.project
+/.settings/org.maven.ide.eclipse.prefs
diff --git a/.project b/.project
deleted file mode 100644
index 7c95189..0000000
--- a/.project
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<projectDescription>
-   <name>GwtOrm</name>
-   <comment>GWT-ORM</comment>
-   <projects/>
-   <buildSpec>
-       <buildCommand>
-           <name>org.eclipse.jdt.core.javabuilder</name>
-           <arguments/>
-       </buildCommand>
-   </buildSpec>
-   <natures>
-       <nature>org.eclipse.jdt.core.javanature</nature>
-   </natures>
-</projectDescription>
diff --git a/GwtOrm-AllTests.launch b/GwtOrm-AllTests.launch
index 7c5ef6d..f47d7c6 100644
--- a/GwtOrm-AllTests.launch
+++ b/GwtOrm-AllTests.launch
@@ -1,16 +1,18 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/GwtOrm"/>
+<listEntry value="/gwtorm"/>
 </listAttribute>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
 <listEntry value="4"/>
 </listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=GwtOrm"/>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=gwtorm"/>
 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.classpathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="GwtOrm"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="gwtorm"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.sourcepathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dgwtorm.debugCodeGen=true"/>
 </launchConfiguration>
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 80c0b97..0000000
--- a/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-# Lightweight ORM for Google Web Toolkit
-#
-# Copyright 2008 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Define GWT_SDK to the location of the Google Web Toolkit SDK.
-#
-# Define GWT_OS to your operating system, e.g. 'linux', 'mac'.
-#
-
-uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
-
-JAVA       = java
-JAVAC      = javac
-GWT_OS     = unknown
-
-ifeq ($(uname_S),Darwin)
-	GWT_OS = mac
-endif
-ifeq ($(uname_S),Linux)
-	GWT_OS = linux
-endif
-ifeq ($(uname_S),Cygwin)
-	GWT_OS = win
-endif
-
--include config.mak
-
-GWT_CP     = $(GWT_SDK)/gwt-user.jar:$(GWT_SDK)/gwt-dev-$(GWT_OS).jar
-OUR_CP     = ../lib/antlr.jar:../lib/asm.jar
-MY_JAR     = lib/gwtorm.jar
-MY_JAVA    = $(shell find src -name \*.java)
-MY_GWT_XML = com/google/gwtorm/GWTORM.gwt.xml
-
-QUERY_G    = src/com/google/gwtorm/schema/Query.g
-QUERY_JAVA = src/com/google/gwtorm/schema/QueryParser.java
-
-all: $(MY_JAR)
-
-clean:
-	rm -f $(MY_JAR)
-	rm -f $(QUERY_JAVA)
-	rm -f src/com/google/gwtorm/schema/Query.tokens
-	rm -f src/com/google/gwtorm/schema/QueryLexer.java
-	rm -f src/com/google/gwtorm/schema/Query__.g
-	rm -rf classes .bin
-
-$(QUERY_JAVA): $(QUERY_G)
-	$(JAVA) -cp lib/antlr.jar org.antlr.Tool $(QUERY_G)
-
-$(MY_JAR): $(MY_JAVA) src/$(MY_GWT_XML) $(QUERY_JAVA)
-	rm -rf .bin
-	mkdir .bin
-	cd src && $(JAVAC) \
-		-encoding utf-8 \
-		-source 1.5 \
-		-target 1.5 \
-		-g \
-		-cp $(GWT_CP):$(OUR_CP) \
-		-d ../.bin \
-		$(patsubst src/%,%,$(MY_JAVA))
-	cd .bin && jar cf ../$(MY_JAR) .
-	cd src && jar uf ../$(MY_JAR) .
-	rm -rf .bin
-
-.PHONY: all
-.PHONY: clean
diff --git a/README_ECLIPSE b/README_ECLIPSE
index a0da056..e8643fc 100644
--- a/README_ECLIPSE
+++ b/README_ECLIPSE
@@ -1,21 +1,12 @@
 Eclipse Setup
 =============
 
-Compile once using "make" to ensure the ANTLR parser is generated.
+- Install the Maven Integration plugins:
 
+  http://m2eclipse.codehaus.org/
 
-User Library
-------------
+- Import the project using the General -> Maven Projects
 
-  Window > Preferences
-  Java > Build Path > User Libraries
-
-Create a User Library called "GWT":
-
-  New
-
-  Name: GWT
-  Add JARs...
-
-  * Select gwt-user.jar from the $(GWT_SDK) directory.
-  * Select gwt-dev-$(GWT_OS).jar from the $(GWT_SDK) directory.
+- Use right click, Maven -> Update Project Configuration
+  to force a compile of the generted ANTLR sources.  This
+  fixes the compile errors identified after import.
diff --git a/lib/.gitignore b/lib/.gitignore
deleted file mode 100644
index f852cd5..0000000
--- a/lib/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/gwtorm.jar
-/*_src.zip
diff --git a/lib/antlr.jar b/lib/antlr.jar
deleted file mode 100644
index da03a67..0000000
--- a/lib/antlr.jar
+++ /dev/null
Binary files differ
diff --git a/lib/antlr_LICENSE b/lib/antlr_LICENSE
deleted file mode 100644
index 6cfe9b0..0000000
--- a/lib/antlr_LICENSE
+++ /dev/null
@@ -1,29 +0,0 @@
-ANTLR 3.1.1
------------
-
-[The "BSD licence"]
-Copyright (c) 2003-2008 Terence Parr
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
- 3. The name of the author may not be used to endorse or promote products
-    derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/lib/asm.jar b/lib/asm.jar
deleted file mode 100644
index b3baf3f..0000000
--- a/lib/asm.jar
+++ /dev/null
Binary files differ
diff --git a/lib/asm_LICENSE b/lib/asm_LICENSE
deleted file mode 100644
index 2b89056..0000000
--- a/lib/asm_LICENSE
+++ /dev/null
@@ -1,30 +0,0 @@
- ObjectWeb ASM 3.1
- -----------------
-
- ASM: a very small and fast Java bytecode manipulation framework
- Copyright (c) 2000-2005 INRIA, France Telecom
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
- 3. Neither the name of the copyright holders nor the names of its
-    contributors may be used to endorse or promote products derived from
-    this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/lib/jdbc-h2.jar b/lib/jdbc-h2.jar
deleted file mode 100644
index e9f2d40..0000000
--- a/lib/jdbc-h2.jar
+++ /dev/null
Binary files differ
diff --git a/lib/jdbc-h2_LICENSE.html b/lib/jdbc-h2_LICENSE.html
deleted file mode 100644
index a6c443e..0000000
--- a/lib/jdbc-h2_LICENSE.html
+++ /dev/null
@@ -1,703 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<!-- H2 Database 2008-11-07 -->
-<!-- 
-Copyright 2004-2008 H2 Group. Multiple-Licensed under the H2 License, Version 1.0,
-and under the Eclipse Public License, Version 1.0
-(http://h2database.com/html/license.html). 
-Initial Developer: H2 Group
--->
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-<head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /><title>
-License
-</title><link rel="stylesheet" type="text/css" href="stylesheet.css" />
-<!-- [search] { -->
-<script type="text/javascript" src="navigation.js"></script>
-</head><body onload="frameMe();">
-<table class="content"><tr class="content"><td class="content"><div class="contentDiv">
-<!-- } -->
-
-<h1>License</h1>
-
-<h2>Summary and License FAQ</h2>
-<p>
-H2 is dual licensed and available under a modified version of the 
-MPL 1.1  (<a href="http://www.mozilla.org/MPL">Mozilla Public License</a>)
-or EPL 1.0  (<a href="http://opensource.org/licenses/eclipse-1.0.php">Eclipse Public License</a>).
-The changes are <em class="u">underlined</em>.
-There is a License FAQ for both the MPL and the EPL, most of that is applicable to the H2 License as well.
-</p>
-<ul>
-<li>You can use H2 for free. You can integrate it into your application (including commercial applications), 
-    and you can distribute it.
-</li><li>Files containing only your code are not covered by this license (it is 'commercial friendly').
-</li><li>Modifications to the H2 source code must be published.
-</li><li>You don't need to provide the source code of H2 if you did not modify anything.
-</li></ul>
-
-<p>
-However, nobody is allowed to rename H2, modify it a little, and sell it as a database engine without telling the customers it is in fact H2. 
-This happened to HSQLDB, when a company called 'bungisoft' copied HSQLDB, renamed it to 'RedBase', and tried to sell it, 
-hiding the fact that it was, in fact, just HSQLDB. At this time, it seems 'bungisoft' does not exist any more, but you can use the 
-Wayback Machine of http://www.archive.org and look for old web pages of http://www.bungisoft.com .
-</p><p>
-About porting the source code to another language (for example C# or C++): Converted source code (even if done manually) stays under the same 
-copyright and license as the original code. The copyright of the ported source code does not (automatically) go to the person who ported the code.
-</p>
-
-<h2>H2 License, Version 1.0</h2>
-
- <h3 id="section-1">1. Definitions</h3>
-  <p id="section-1.0.1"><b>1.0.1. "Commercial Use"</b>
-  means distribution or otherwise making the Covered Code available to a third party.
-  </p>
-  <p id="section-1.1"><b>1.1. "Contributor"</b>
-  means each entity that creates or contributes to the creation of Modifications.
-  </p>
-  <p id="section-1.2"><b>1.2. "Contributor Version"</b>
-  means the combination of the Original Code, prior Modifications used by a Contributor,
-   and the Modifications made by that particular Contributor.
-  </p>
-  <p id="section-1.3"><b>1.3. "Covered Code"</b>
-  means the Original Code or Modifications or the combination of the Original Code and
-   Modifications, in each case including portions thereof.
-  </p>
-  <p id="section-1.4"><b>1.4. "Electronic Distribution Mechanism"</b>
-  means a mechanism generally accepted in the software development community for the
-   electronic transfer of data.
-  </p>
-   <p id="section-1.5"><b>1.5. "Executable"</b>
-  means Covered Code in any form other than Source Code.
- </p>
-   <p id="section-1.6"><b>1.6. "Initial Developer"</b>
-  means the individual or entity identified as the Initial Developer in the Source Code
-   notice required by <a href="#exhibit-a">Exhibit A</a>.
-    </p>
-  <p id="section-1.7"><b>1.7. "Larger Work"</b>
-  means a work which combines Covered Code or portions thereof with code not governed
-   by the terms of this License.
- </p>   
-  <p id="section-1.8"><b>1.8. "License"</b>
-  means this document.
- </p>  
-  <p id="section-1.8.1"><b>1.8.1. "Licensable"</b>
-  means having the right to grant, to the maximum extent possible, whether at the
-   time of the initial grant or subsequently acquired, any and all of the rights
-   conveyed herein.
- </p>   
-  <p id="section-1.9"><b>1.9. "Modifications"</b>
-    means any addition to or deletion from the substance or structure of either the
-    Original Code or any previous Modifications. When Covered Code is released as a
-    series of files, a Modification is:
-  </p>
-  <p id="section-1.9-a">1.9.a. Any addition to or deletion from the contents of a file
-     containing Original Code or previous Modifications.
-  </p>
-  <p id="section-1.9-b">1.9.b. Any new file that contains any part of the Original Code or
-     previous Modifications.
-  </p>
-  <p id="section-1.10"><b>1.10. "Original Code"</b>
-  means Source Code of computer software code which is described in the Source Code
-   notice required by <a href="#exhibit-a">Exhibit A</a> as Original Code, and which,
-   at the time of its release under this License is not already Covered Code governed
-   by this License.
- </p>
-  <p id="section-1.10.1"><b>1.10.1. "Patent Claims"</b>
-  means any patent claim(s), now owned or hereafter acquired, including without
-   limitation, method, process, and apparatus claims, in any patent Licensable by
-   grantor.
- </p>
-  <p id="section-1.11"><b>1.11. "Source Code"</b>
-  means the preferred form of the Covered Code for making modifications to it,
-   including all modules it contains, plus any associated interface definition files,
-   scripts used to control compilation and installation of an Executable, or source
-   code differential comparisons against either the Original Code or another well known,
-   available Covered Code of the Contributor's choice. The Source Code can be in a
-   compressed or archival form, provided the appropriate decompression or de-archiving
-   software is widely available for no charge.
- </p>
-  <p id="section-1.12"><b>1.12. "You" (or "Your")</b>
-  means an individual or a legal entity exercising rights under, and complying with
-   all of the terms of, this License or a future version of this License issued under
-   <a href="#section-6.1">Section 6.1.</a> For legal entities, "You" includes any entity
-   which controls, is controlled by, or is under common control with You. For purposes of
-   this definition, "control" means (a) the power, direct or indirect, to cause the
-   direction or management of such entity, whether by contract or otherwise, or (b)
-   ownership of more than fifty percent (50%) of the outstanding shares or beneficial
-   ownership of such entity.
- </p>
-
- <h3 id="section-2">2. Source Code License</h3>
- <h4 id="section-2.1">2.1. The Initial Developer Grant</h4>
- <p>
- The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive
-  license, subject to third party intellectual property claims:
-  </p>
-  <p id="section-2.1-a">2.1.a. under intellectual property rights (other than patent or
-   trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform,
-   sublicense and distribute the Original Code (or portions thereof) with or without
-   Modifications, and/or as part of a Larger Work; and
-   </p>
-  <p id="section-2.1-b">2.1.b. under Patents Claims infringed by the making, using or selling
-   of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or
-   otherwise dispose of the Original Code (or portions thereof).
-   </p>
-  <p id="section-2.1-c">2.1.c. the licenses granted in this Section 2.1
-   (<a href="#section-2.1-a">a</a>) and (<a href="#section-2.1-b">b</a>) are effective on
-   the date Initial Developer first distributes Original Code under the terms of this
-   License.
-   </p>
-  <p id="section-2.1-d">2.1.d. Notwithstanding Section 2.1 (<a href="#section-2.1-b">b</a>)
-   above, no patent license is granted: 1) for code that You delete from the Original Code;
-   2) separate from the Original Code; or 3) for infringements caused by: i) the
-   modification of the Original Code or ii) the combination of the Original Code with other
-   software or devices.
- </p>
-
- <h4 id="section-2.2">2.2. Contributor Grant</h4>
- <p>
- Subject to third party intellectual property claims, each Contributor hereby grants You
-  a world-wide, royalty-free, non-exclusive license
-  </p>
-  <p id="section-2.2-a">2.2.a. under intellectual property rights (other than patent or trademark)
-   Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and
-   distribute the Modifications created by such Contributor (or portions thereof) either on
-   an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger
-   Work; and
- </p>
- <p id="section-2.2-b">2.2.b. under Patent Claims infringed by the making, using, or selling of
-   Modifications made by that Contributor either alone and/or in combination with its
-   Contributor Version (or portions of such combination), to make, use, sell, offer for
-   sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor
-   (or portions thereof); and 2) the combination of Modifications made by that Contributor
-   with its Contributor Version (or portions of such combination).
-  </p>
-  <p id="section-2.2-c">2.2.c. the licenses granted in Sections 2.2
-   (<a href="#section-2.2-a">a</a>) and 2.2 (<a href="#section-2.2-b">b</a>) are effective
-   on the date Contributor first makes Commercial Use of the Covered Code.
-  </p>
-  <p id="section-2.2-d">2.2.c. Notwithstanding Section 2.2 (<a href="#section-2.2-b">b</a>)
-   above, no patent license is granted: 1) for any code that Contributor has deleted from
-   the Contributor Version; 2) separate from the Contributor Version; 3) for infringements
-   caused by: i) third party modifications of Contributor Version or ii) the combination of
-   Modifications made by that Contributor with other software (except as part of the
-   Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code
-   in the absence of Modifications made by that Contributor.
- </p>
-
- <h3 id="section-3">3. Distribution Obligations</h3>
- <h4 id="section-3.1">3.1. Application of License</h4>
- <p>
- The Modifications which You create or to which You contribute are governed by the terms
-  of this License, including without limitation Section <a href="#section-2.2">2.2</a>. The
-  Source Code version of Covered Code may be distributed only under the terms of this License
-  or a future version of this License released under Section <a href="#section-6.1">6.1</a>,
-  and You must include a copy of this License with every copy of the Source Code You
-  distribute. You may not offer or impose any terms on any Source Code version that alters or
-  restricts the applicable version of this License or the recipients' rights hereunder.
-  However, You may include an additional document offering the additional rights described in
-  Section <a href="#section-3.5">3.5</a>.
-</p>
-  
- <h4 id="section-3.2">3.2. Availability of Source Code</h4>
- <p>
- Any Modification which You create or to which You contribute must be made available in
-  Source Code form under the terms of this License either on the same media as an Executable
-  version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an
-  Executable version available; and if made available via Electronic Distribution Mechanism,
-  must remain available for at least twelve (12) months after the date it initially became
-  available, or at least six (6) months after a subsequent version of that particular
-  Modification has been made available to such recipients. You are responsible for ensuring
-  that the Source Code version remains available even if the Electronic Distribution
-  Mechanism is maintained by a third party.
-  </p>
-  
- <h4 id="section-3.3">3.3. Description of Modifications</h4>
-<p>
- You must cause all Covered Code to which You contribute to contain a file documenting the
-  changes You made to create that Covered Code and the date of any change. You must include a
-  prominent statement that the Modification is derived, directly or indirectly, from Original
-  Code provided by the Initial Developer and including the name of the Initial Developer in
-  (a) the Source Code, and (b) in any notice in an Executable version or related documentation
-  in which You describe the origin or ownership of the Covered Code.
-  </p>
-  
- <h4 id="section-3.4">3.4. Intellectual Property Matters</h4>
- <p id="section-3.4-a"><b>3.4.a. Third Party Claims:</b>
-     If Contributor has knowledge that a license under a third party's intellectual property
-  rights is required to exercise the rights granted by such Contributor under Sections
-  <a href="#section-2.1">2.1</a> or <a href="#section-2.2">2.2</a>, Contributor must include a
-  text file with the Source Code distribution titled "LEGAL" which describes the claim and the
-  party making the claim in sufficient detail that a recipient will know whom to contact. If
-  Contributor obtains such knowledge after the Modification is made available as described in
-  Section <a href="#section-3.2">3.2</a>, Contributor shall promptly modify the LEGAL file in
-  all copies Contributor makes available thereafter and shall take other steps (such as
-  notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who
-  received the Covered Code that new knowledge has been obtained.
- </p>
- <p id="section-3.4-b"><b>3.4.b. Contributor APIs:</b> 
- If Contributor's Modifications include an application programming interface and Contributor
-  has knowledge of patent licenses which are reasonably necessary to implement that
-  API, Contributor must also include this information in the legal file.
- </p>
- <p id="section-3.4-c"><b>3.4.c. Representations:</b>
- Contributor represents that, except as disclosed pursuant to Section 3.4
-  (<a href="#section-3.4-a">a</a>) above, Contributor believes that Contributor's Modifications
-  are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the
-  rights conveyed by this License.
- </p>
-  
- <h4 id="section-3.5">3.5. Required Notices</h4>
- <p>
- You must duplicate the notice in <a href="#exhibit-a">Exhibit A</a> in each file of the
-  Source Code. If it is not possible to put such notice in a particular Source Code file due to
-  its structure, then You must include such notice in a location (such as a relevant directory)
-  where a user would be likely to look for such a notice. If You created one or more
-  Modification(s) You may add your name as a Contributor to the notice described in
-  <a href="#exhibit-a">Exhibit A</a>. You must also duplicate this License in any documentation
-  for the Source Code where You describe recipients' rights or ownership rights relating to
-  Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity
-  or liability obligations to one or more recipients of Covered Code. However, You may do so
-  only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You
-  must make it absolutely clear than any such warranty, support, indemnity or liability
-  obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer
-  and every Contributor for any liability incurred by the Initial Developer or such Contributor
-  as a result of warranty, support, indemnity or liability terms You offer.
-  </p>
-  
- <h4 id="section-3.6">3.6. Distribution of Executable Versions</h4>
- <p>
- You may distribute Covered Code in Executable form only if the requirements of Sections
-  <a href="#section-3.1">3.1</a>, <a href="#section-3.2">3.2</a>,
-  <a href="#section-3.3">3.3</a>, <a href="#section-3.4">3.4</a> and
-  <a href="#section-3.5">3.5</a> have been met for that Covered Code, and if You include a
-  notice stating that the Source Code version of the Covered Code is available under the terms
-  of this License, including a description of how and where You have fulfilled the obligations
-  of Section <a href="#section-3.2">3.2</a>. The notice must be conspicuously included in any
-  notice in an Executable version, related documentation or collateral in which You describe
-  recipients' rights relating to the Covered Code. You may distribute the Executable version of
-  Covered Code or ownership rights under a license of Your choice, which may contain terms
-  different from this License, provided that You are in compliance with the terms of this
-  License and that the license for the Executable version does not attempt to limit or alter the
-  recipient's rights in the Source Code version from the rights set forth in this License. If
-  You distribute the Executable version under a different license You must make it absolutely
-  clear that any terms which differ from this License are offered by You alone, not by the
-  Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and
-  every Contributor for any liability incurred by the Initial Developer or such Contributor as
-  a result of any such terms You offer.
-</p>  
-  
- <h4 id="section-3.7">3.7. Larger Works</h4>
- <p>
- You may create a Larger Work by combining Covered Code with other code not governed by the
-  terms of this License and distribute the Larger Work as a single product. In such a case,
-  You must make sure the requirements of this License are fulfilled for the Covered Code.
-  </p>
-  
- <h3 id="section-4">4. Inability to Comply Due to Statute or Regulation.</h3>
- <p>
- If it is impossible for You to comply with any of the terms of this License with respect to
-  some or all of the Covered Code due to statute, judicial order, or regulation then You must:
-  (a) comply with the terms of this License to the maximum extent possible; and (b) describe
-  the limitations and the code they affect. Such description must be included in the
-  <b>legal</b> file described in Section
-  <a href="#section-3.4">3.4</a> and must be included with all distributions of the Source Code.
-  Except to the extent prohibited by statute or regulation, such description must be
-  sufficiently detailed for a recipient of ordinary skill to be able to understand it.
-  </p>
-  
- <h3 id="section-5">5. Application of this License.</h3>
- <p>
- This License applies to code to which the Initial Developer has attached the notice in
-  <a href="#exhibit-a">Exhibit A</a> and to related Covered Code.
-  </p>
-  
- <h3 id="section-6">6. Versions of the License.</h3>
-
- <h4 id="section-6.1">6.1. New Versions</h4>
-<p>
- The <em class="u">H2 Group</em> may publish revised and/or new versions
-  of the License from time to time. Each version will be given a distinguishing version number.
-</p>
-  
- <h4 id="section-6.2">6.2. Effect of New Versions</h4>
- <p>
- Once Covered Code has been published under a particular version of the License, You may
-  always continue to use it under the terms of that version. You may also choose to use such
-  Covered Code under the terms of any subsequent version of the License published by the <em class="u">H2 Group</em>.
-  No one other than the <em class="u">H2 Group</em> has the right to modify the terms applicable to Covered Code
-  created under this License.
-</p>
-  
- <h4 id="section-6.3">6.3. Derivative Works</h4>
- <p>
- If You create or use a modified version of this License (which you may only do in order to
- apply it to code which is not already Covered Code governed by this License), You must (a)
- rename Your license so that the phrases <em class="u">"H2 Group", "H2"</em> 
- or any confusingly similar phrase do not appear in your license (except to note that
- your license differs from this License) and (b) otherwise make it clear that Your version of
- the license contains terms which differ from the <em class="u">H2 License</em>. 
- (Filling in the name of the Initial Developer, Original Code or Contributor in the
- notice described in <a href="#exhibit-a">Exhibit A</a> shall not of themselves be deemed to
- be modifications of this License.)
-</p>
- 
- <h3 id="section-7">7. Disclaimer of Warranty</h3>
-<p>
-Covered code is provided under this license on an "as is"
-  basis, without warranty of any kind, either expressed or implied, including, without
-  limitation, warranties that the covered code is free of defects, merchantable, fit for a
-  particular purpose or non-infringing. The entire risk as to the quality and performance of
-  the covered code is with you. Should any covered code prove defective in any respect, you
-  (not the initial developer or any other contributor) assume the cost of any necessary
-  servicing, repair or correction. This disclaimer of warranty constitutes an essential part
-  of this license. No use of any covered code is authorized hereunder except under this
-  disclaimer.
-  </p>
-  
- <h3 id="section-8">8. Termination</h3>
- <p id="section-8.1">8.1. This License and the rights granted hereunder will terminate
-  automatically if You fail to comply with terms herein and fail to cure such breach
-  within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which
-  are properly granted shall survive any termination of this License. Provisions which, by
-  their nature, must remain in effect beyond the termination of this License shall survive.
- </p>
- 
- <p id="section-8.2">8.2. If You initiate litigation by asserting a patent infringement
-  claim (excluding declaratory judgment actions) against Initial Developer or a Contributor
-  (the Initial Developer or Contributor against whom You file such action is referred to
-  as "Participant") alleging that:
-</p>
-  <p id="section-8.2-a">8.2.a. such Participant's Contributor Version directly or indirectly
-   infringes any patent, then any and all rights granted by such Participant to You under
-   Sections <a href="#section-2.1">2.1</a> and/or <a href="#section-2.2">2.2</a> of this
-   License shall, upon 60 days notice from Participant terminate prospectively, unless if
-   within 60 days after receipt of notice You either: (i) agree in writing to pay
-   Participant a mutually agreeable reasonable royalty for Your past and future use of
-   Modifications made by such Participant, or (ii) withdraw Your litigation claim with
-   respect to the Contributor Version against such Participant. If within 60 days of
-   notice, a reasonable royalty and payment arrangement are not mutually agreed upon in
-   writing by the parties or the litigation claim is not withdrawn, the rights granted by
-   Participant to You under Sections <a href="#section-2.1">2.1</a> and/or
-   <a href="#section-2.2">2.2</a> automatically terminate at the expiration of the 60 day
-   notice period specified above.
-  </p>
-  <p id="section-8.2-b">8.2.b. any software, hardware, or device, other than such Participant's
-   Contributor Version, directly or indirectly infringes any patent, then any rights
-   granted to You by such Participant under Sections 2.1(<a href="#section-2.1-b">b</a>)
-   and 2.2(<a href="#section-2.2-b">b</a>) are revoked effective as of the date You first
-   made, used, sold, distributed, or had made, Modifications made by that Participant.
- </p>
- 
- <p id="section-8.3">8.3. If You assert a patent infringement claim against Participant
-  alleging that such Participant's Contributor Version directly or indirectly infringes
-  any patent where such claim is resolved (such as by license or settlement) prior to the
-  initiation of patent infringement litigation, then the reasonable value of the licenses
-  granted by such Participant under Sections <a href="#section-2.1">2.1</a> or
-  <a href="#section-2.2">2.2</a> shall be taken into account in determining the amount or
-  value of any payment or license.
-</p>
-
- <p id="section-8.4">8.4. In the event of termination under Sections
-  <a href="#section-8.1">8.1</a> or <a href="#section-8.2">8.2</a> above, all end user
-  license agreements (excluding distributors and resellers) which have been validly
-  granted by You or any distributor hereunder prior to termination shall survive
-  termination.
- </p>
-  
-<h3 id="section-9">9. Limitation of Liability</h3>
-<p>
-Under no circumstances and under no legal theory, whether
-  tort (including negligence), contract, or otherwise, shall you, the initial developer,
-  any other contributor, or any distributor of covered code, or any supplier of any of
-  such parties, be liable to any person for any indirect, special, incidental, or
-  consequential damages of any character including, without limitation, damages for loss
-  of goodwill, work stoppage, computer failure or malfunction, or any and all other
-  commercial damages or losses, even if such party shall have been informed of the
-  possibility of such damages. This limitation of liability shall not apply to liability
-  for death or personal injury resulting from such party's negligence to the extent
-  applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion
-  or limitation of incidental or consequential damages, so this exclusion and limitation
-  may not apply to you.
-</p>
-  
-<h3 id="section-10">10. United States Government End Users</h3>
-<p>
- The Covered Code is a "commercial item", as that term is defined in 48
-  C.F.R. 2.101 (October 1995), consisting of
-  "commercial computer software" and "commercial computer software documentation", as such
-  terms are used in 48 C.F.R. 12.212 (September 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
-  227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users
-  acquire Covered Code with only those rights set forth herein.
-</p>
-  
-<h3 id="section-11">11. Miscellaneous</h3>
-<p>
-This License represents the complete agreement concerning subject matter hereof. If
-  any provision of this License is held to be unenforceable, such provision shall be
-  reformed only to the extent necessary to make it enforceable. This License shall be
-  governed by <em class="u">Swiss</em> law provisions (except to the extent applicable law, if any,
-  provides otherwise), excluding its conflict-of-law provisions. With respect to
-  disputes in which at least one party is a citizen of, or an entity chartered or
-  registered to do business in <em class="u">Switzerland</em>, any litigation relating to
-  this License shall be subject to the jurisdiction of <em class="u">Switzerland</em>,  
-  with the losing party responsible for costs, including without limitation, court
-  costs and reasonable attorneys' fees and expenses. The application of the United
-  Nations Convention on Contracts for the International Sale of Goods is expressly
-  excluded. Any law or regulation which provides that the language of a contract
-  shall be construed against the drafter shall not apply to this License.
-</p>
-  
-<h3 id="section-12">12. Responsibility for Claims</h3>
-<p>
-As between Initial Developer and the Contributors, each party is responsible for
-claims and damages arising, directly or indirectly, out of its utilization of rights
-under this License and You agree to work with Initial Developer and Contributors to
-distribute such responsibility on an equitable basis. Nothing herein is intended or
-shall be deemed to constitute any admission of liability.
-</p>
-
-<h3 id="section-13">13. Multiple-Licensed Code</h3>
-<p>
-Initial Developer may designate portions of the Covered Code as
-"Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits
-you to utilize portions of the Covered Code under Your choice of this 
-or the alternative licenses, if any, specified by the Initial Developer in the file
-described in <a href="#exhibit-a">Exhibit A</a>.
-</p>
-  
-<h3 id="exhibit-a">Exhibit A</h3>
-<pre>
-Multiple-Multiple-Licensed under the H2 License, Version 1.0,
-and under the Eclipse Public License, Version 1.0
-, and under the
-Eclipse Public License, Version 1.0 (http://h2database.com/html/license.html)
-Initial Developer: H2 Group
-</pre>
-
-<h2>Eclipse Public License - Version 1.0</h2>
-<p>
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE 
-PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF 
-THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-</p>
-
-<h3>1. DEFINITIONS</h3>
-<p>
-"Contribution" means:
-</p><p>
-a) in the case of the initial Contributor, the initial code and documentation 
-distributed under this Agreement, and
-</p><p>
-b) in the case of each subsequent Contributor:
-</p><p>
-i) changes to the Program, and
-</p><p>
-ii) additions to the Program;
-</p><p>
-where such changes and/or additions to the Program originate from and are 
-distributed by that particular Contributor. A Contribution 'originates' from a 
-Contributor if it was added to the Program by such Contributor itself or anyone 
-acting on such Contributor's behalf. Contributions do not include additions to 
-the Program which: (i) are separate modules of software distributed in conjunction 
-with the Program under their own license agreement, and (ii) are not derivative 
-works of the Program.
-</p><p>
-"Contributor" means any person or entity that distributes the Program.
-</p><p>
-"Licensed Patents " mean patent claims licensable by a Contributor which are 
-necessarily infringed by the use or sale of its Contribution alone or when combined 
-with the Program.
-</p><p>
-"Program" means the Contributions distributed in accordance with this Agreement.
-</p><p>
-"Recipient" means anyone who receives the Program under this Agreement, 
-including all Contributors.
-</p>
-
-<h3>2. GRANT OF RIGHTS</h3>
-<p>
-a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient 
-a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare 
-derivative works of, publicly display, publicly perform, distribute and sublicense the 
-Contribution of such Contributor, if any, and such derivative works, in source code 
-and object code form.
-</p><p>
-b) Subject to the terms of this Agreement, each Contributor hereby grants 
-Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed 
-Patents to make, use, sell, offer to sell, import and otherwise transfer the 
-Contribution of such Contributor, if any, in source code and object code form. 
-This patent license shall apply to the combination of the Contribution and the 
-Program if, at the time the Contribution is added by the Contributor, such addition 
-of the Contribution causes such combination to be covered by the Licensed 
-Patents. The patent license shall not apply to any other combinations which 
-include the Contribution. No hardware per se is licensed hereunder.
-</p><p>
-c) Recipient understands that although each Contributor grants the licenses to 
-its Contributions set forth herein, no assurances are provided by any Contributor 
-that the Program does not infringe the patent or other intellectual property 
-rights of any other entity. Each Contributor disclaims any liability to Recipient 
-for claims brought by any other entity based on infringement of intellectual 
-property rights or otherwise. As a condition to exercising the rights and licenses 
-granted hereunder, each Recipient hereby assumes sole responsibility to secure 
-any other intellectual property rights needed, if any. For example, if a third party 
-patent license is required to allow Recipient to distribute the Program, it is 
-Recipient's responsibility to acquire that license before distributing the Program.
-</p><p>
-d) Each Contributor represents that to its knowledge it has sufficient copyright 
-rights in its Contribution, if any, to grant the copyright license set forth in this 
-Agreement.
-</p>
-
-<h3>3. REQUIREMENTS</h3>
-<p>
-A Contributor may choose to distribute the Program in object code form 
-under its own license agreement, provided that:
-</p><p>
-a) it complies with the terms and conditions of this Agreement; and
-</p><p>
-b) its license agreement:
-</p><p>
-i) effectively disclaims on behalf of all Contributors all warranties and conditions, 
-express and implied, including warranties or conditions of title and 
-non-infringement, and implied warranties or conditions of merchantability and 
-fitness for a particular purpose;
-</p><p>
-ii) effectively excludes on behalf of all Contributors all liability for damages, 
-including direct, indirect, special, incidental and consequential damages, 
-such as lost profits;
-</p><p>
-iii) states that any provisions which differ from this Agreement are offered by 
-that Contributor alone and not by any other party; and
-</p><p>
-iv) states that source code for the Program is available from such Contributor, 
-and informs licensees how to obtain it in a reasonable manner on or through 
-a medium customarily used for software exchange.
-</p><p>
-When the Program is made available in source code form:
-</p><p>
-a) it must be made available under this Agreement; and
-</p><p>
-b) a copy of this Agreement must be included with each copy of the Program.
-</p><p>
-Contributors may not remove or alter any copyright notices contained within 
-the Program.
-</p><p>
-Each Contributor must identify itself as the originator of its Contribution, 
-if any, in a manner that reasonably allows subsequent Recipients to identify 
-the originator of the Contribution.
-</p>
-
-<h3>4. COMMERCIAL DISTRIBUTION</h3>
-<p>
-Commercial distributors of software may accept certain responsibilities with 
-respect to end users, business partners and the like. While this license is 
-intended to facilitate the commercial use of the Program, the Contributor 
-who includes the Program in a commercial product offering should do so 
-in a manner which does not create potential liability for other Contributors. 
-Therefore, if a Contributor includes the Program in a commercial product 
-offering, such Contributor ("Commercial Contributor") hereby agrees to 
-defend and indemnify every other Contributor ("Indemnified Contributor") 
-against any losses, damages and costs (collectively "Losses") arising from 
-claims, lawsuits and other legal actions brought by a third party against the 
-Indemnified Contributor to the extent caused by the acts or omissions of 
-such Commercial Contributor in connection with its distribution of the 
-Program in a commercial product offering. The obligations in this section 
-do not apply to any claims or Losses relating to any actual or alleged 
-intellectual property infringement. In order to qualify, an Indemnified 
-Contributor must: a) promptly notify the Commercial Contributor in writing 
-of such claim, and b) allow the Commercial Contributor to control, and 
-cooperate with the Commercial Contributor in, the defense and any related 
-settlement negotiations. The Indemnified Contributor may participate in 
-any such claim at its own expense.
-</p><p>
-For example, a Contributor might include the Program in a commercial 
-product offering, Product X. That Contributor is then a Commercial 
-Contributor. If that Commercial Contributor then makes performance 
-claims, or offers warranties related to Product X, those performance 
-claims and warranties are such Commercial Contributor's responsibility 
-alone. Under this section, the Commercial Contributor would have to 
-defend claims against the other Contributors related to those performance 
-claims and warranties, and if a court requires any other Contributor to pay 
-any damages as a result, the Commercial Contributor must pay those damages.
-</p>
-
-<h3>5. NO WARRANTY</h3>
-<p>
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM 
-IS PROVIDED 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. Each Recipient is solely responsible for determining the 
-appropriateness of using and distributing the Program and assumes all 
-risks associated with its exercise of rights under this Agreement, including 
-but not limited to the risks and costs of program errors, compliance with 
-applicable laws, damage to or loss of data, programs or equipment, and 
-unavailability or interruption of operations.
-</p>
-
-<h3>6. DISCLAIMER OF LIABILITY</h3>
-<p>
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER 
-RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR 
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST 
-PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 
-USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY 
-RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY 
-OF SUCH DAMAGES.
-</p>
-
-<h3>7. GENERAL</h3>
-<p>
-If any provision of this Agreement is invalid or unenforceable under applicable 
-law, it shall not affect the validity or enforceability of the remainder of the 
-terms of this Agreement, and without further action by the parties hereto, 
-such provision shall be reformed to the minimum extent necessary to make 
-such provision valid and enforceable.
-</p><p>
-If Recipient institutes patent litigation against any entity (including a cross-claim 
-or counterclaim in a lawsuit) alleging that the Program itself (excluding 
-combinations of the Program with other software or hardware) infringes such 
-Recipient's patent(s), then such Recipient's rights granted under Section 
-2(b) shall terminate as of the date such litigation is filed.
-</p><p>
-All Recipient's rights under this Agreement shall terminate if it fails to comply 
-with any of the material terms or conditions of this Agreement and does 
-not cure such failure in a reasonable period of time after becoming aware 
-of such noncompliance. If all Recipient's rights under this Agreement 
-terminate, Recipient agrees to cease use and distribution of the Program 
-as soon as reasonably practicable. However, Recipient's obligations under 
-this Agreement and any licenses granted by Recipient relating to the 
-Program shall continue and survive.
-</p><p>
-Everyone is permitted to copy and distribute copies of this Agreement, but 
-in order to avoid inconsistency the Agreement is copyrighted and may only 
-be modified in the following manner. The Agreement Steward reserves the 
-right to publish new versions (including revisions) of this Agreement from 
-time to time. No one other than the Agreement Steward has the right to 
-modify this Agreement. The Eclipse Foundation is the initial Agreement 
-Steward. The Eclipse Foundation may assign the responsibility to serve as 
-the Agreement Steward to a suitable separate entity. Each new version of 
-the Agreement will be given a distinguishing version number. The Program 
-(including Contributions) may always be distributed subject to the version 
-of the Agreement under which it was received. In addition, after a new 
-version of the Agreement is published, Contributor may elect to distribute 
-the Program (including its Contributions) under the new version. Except as 
-expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights 
-or licenses to the intellectual property of any Contributor under this 
-Agreement, whether expressly, by implication, estoppel or otherwise. 
-All rights in the Program not expressly granted under this Agreement are 
-reserved.
-</p><p>
-This Agreement is governed by the laws of <em class="u">Switzerland</em>
-and the intellectual property laws of <em class="u">Switzerland</em>. 
-No party to this Agreement will bring a legal action under this Agreement more 
-than one year after the cause of action arose. Each party waives its rights 
-to a jury trial in any resulting litigation. 
-</p>
-
-<!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html>
-
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..54d3dbf
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright 2008 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>gwtorm</groupId>
+  <artifactId>gwtorm</artifactId>
+  <packaging>jar</packaging>
+  <version>0.1-SNAPSHOT</version>
+  <name>gwtorm</name>
+  <description>Tiny ORM for GWT, JDBC</description>
+  <url>http://android.git.kernel.org/?p=tools/gwtorm.git</url>
+
+  <mailingLists>
+    <mailingList>
+      <name>repo-discuss mailing list</name>
+      <post>repo-discuss@googlegroups.com</post>
+    </mailingList>
+  </mailingLists>
+
+  <developers>
+    <developer>
+      <name>Shawn O. Pearce</name>
+      <email>sop@google.com</email>
+      <roles>
+        <role>Maintainer</role>
+      </roles>
+    </developer>
+  </developers>
+
+  <licenses>
+    <license>
+      <name>Apache License, 2.0</name>
+      <comments>
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "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.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "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.
+
+      "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).
+
+      "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.
+
+      "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."
+
+      "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.
+
+   2. Grant of Copyright License. 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.
+
+   3. Grant of Patent License. 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.
+
+   4. Redistribution. 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:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) 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
+
+      (d) 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.
+
+      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.
+
+   5. Submission of Contributions. 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.
+
+   6. Trademarks. 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.
+
+   7. Disclaimer of Warranty. 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.
+
+   8. Limitation of Liability. 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.
+
+   9. Accepting Warranty or Additional Liability. 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.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+      </comments>
+    </license>
+  </licenses>
+
+  <properties>
+    <gwtVersion>1.5.3</gwtVersion>
+  </properties>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>src/main/java</directory>
+      </resource>
+    </resources>
+
+    <plugins>
+      <plugin>
+        <groupId>org.antlr</groupId>
+        <artifactId>antlr3-maven-plugin</artifactId>
+        <version>3.1.1</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>antlr</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+          <encoding>UTF-8</encoding>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>asm</groupId>
+      <artifactId>asm</artifactId>
+      <version>3.1</version>
+      <scope>compile</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.antlr</groupId>
+      <artifactId>antlr</artifactId>
+      <version>3.1.1</version>
+      <scope>compile</scope>
+    </dependency>
+
+    <!-- GWT -->
+    <dependency>
+      <groupId>com.google.gwt</groupId>
+      <artifactId>gwt-servlet</artifactId>
+      <version>${gwtVersion}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.google.gwt</groupId>
+      <artifactId>gwt-user</artifactId>
+      <version>${gwtVersion}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.google.gwt</groupId>
+      <artifactId>gwt-dev</artifactId>
+      <version>${gwtVersion}</version>
+      <classifier>${platform}-libs</classifier>
+      <type>zip</type>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.google.gwt</groupId>
+      <artifactId>gwt-dev</artifactId>
+      <version>${gwtVersion}</version>
+      <classifier>${platform}</classifier>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <version>1.1.104</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <profiles>
+    <profile>
+      <id>gwt-dev-windows</id>
+      <properties>
+        <platform>windows</platform>
+      </properties>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+        <os>
+          <family>windows</family>
+        </os>
+      </activation>
+    </profile>
+    <profile>
+      <id>gwt-dev-mac</id>
+      <properties>
+        <platform>mac</platform>
+      </properties>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+        <os>
+          <family>mac</family>
+        </os>
+      </activation>
+    </profile>
+    <profile>
+      <id>gwt-dev-linux</id>
+      <properties>
+        <platform>linux</platform>
+      </properties>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+        <os>
+          <name>linux</name>
+        </os>
+      </activation>
+    </profile>
+  </profiles>
+
+  <repositories>
+    <repository>
+      <id>objectweb-repository</id>
+      <url>http://maven.objectweb.org/maven2</url>
+    </repository>
+    <repository>
+      <id>gwt-maven</id>
+      <url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo/</url>
+    </repository>
+  </repositories>
+
+  <pluginRepositories>
+    <pluginRepository>
+      <id>gwt-maven-plugins</id>
+      <url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo/</url>
+    </pluginRepository>
+  </pluginRepositories>
+</project>
diff --git a/src/com/google/gwtorm/schema/Query.g b/src/main/antlr/com/google/gwtorm/schema/Query.g
similarity index 100%
rename from src/com/google/gwtorm/schema/Query.g
rename to src/main/antlr/com/google/gwtorm/schema/Query.g
diff --git a/src/com/google/gwtorm/GWTORM.gwt.xml b/src/main/java/com/google/gwtorm/GWTORM.gwt.xml
similarity index 100%
rename from src/com/google/gwtorm/GWTORM.gwt.xml
rename to src/main/java/com/google/gwtorm/GWTORM.gwt.xml
diff --git a/src/com/google/gwtorm/client/Access.java b/src/main/java/com/google/gwtorm/client/Access.java
similarity index 100%
rename from src/com/google/gwtorm/client/Access.java
rename to src/main/java/com/google/gwtorm/client/Access.java
diff --git a/src/com/google/gwtorm/client/Column.java b/src/main/java/com/google/gwtorm/client/Column.java
similarity index 100%
rename from src/com/google/gwtorm/client/Column.java
rename to src/main/java/com/google/gwtorm/client/Column.java
diff --git a/src/com/google/gwtorm/client/IntKey.java b/src/main/java/com/google/gwtorm/client/IntKey.java
similarity index 100%
rename from src/com/google/gwtorm/client/IntKey.java
rename to src/main/java/com/google/gwtorm/client/IntKey.java
diff --git a/src/com/google/gwtorm/client/Key.java b/src/main/java/com/google/gwtorm/client/Key.java
similarity index 100%
rename from src/com/google/gwtorm/client/Key.java
rename to src/main/java/com/google/gwtorm/client/Key.java
diff --git a/src/com/google/gwtorm/client/LongKey.java b/src/main/java/com/google/gwtorm/client/LongKey.java
similarity index 100%
rename from src/com/google/gwtorm/client/LongKey.java
rename to src/main/java/com/google/gwtorm/client/LongKey.java
diff --git a/src/com/google/gwtorm/client/OrmException.java b/src/main/java/com/google/gwtorm/client/OrmException.java
similarity index 100%
rename from src/com/google/gwtorm/client/OrmException.java
rename to src/main/java/com/google/gwtorm/client/OrmException.java
diff --git a/src/com/google/gwtorm/client/PrimaryKey.java b/src/main/java/com/google/gwtorm/client/PrimaryKey.java
similarity index 100%
rename from src/com/google/gwtorm/client/PrimaryKey.java
rename to src/main/java/com/google/gwtorm/client/PrimaryKey.java
diff --git a/src/com/google/gwtorm/client/Query.java b/src/main/java/com/google/gwtorm/client/Query.java
similarity index 100%
rename from src/com/google/gwtorm/client/Query.java
rename to src/main/java/com/google/gwtorm/client/Query.java
diff --git a/src/com/google/gwtorm/client/Relation.java b/src/main/java/com/google/gwtorm/client/Relation.java
similarity index 100%
rename from src/com/google/gwtorm/client/Relation.java
rename to src/main/java/com/google/gwtorm/client/Relation.java
diff --git a/src/com/google/gwtorm/client/ResultSet.java b/src/main/java/com/google/gwtorm/client/ResultSet.java
similarity index 100%
rename from src/com/google/gwtorm/client/ResultSet.java
rename to src/main/java/com/google/gwtorm/client/ResultSet.java
diff --git a/src/com/google/gwtorm/client/RowVersion.java b/src/main/java/com/google/gwtorm/client/RowVersion.java
similarity index 100%
rename from src/com/google/gwtorm/client/RowVersion.java
rename to src/main/java/com/google/gwtorm/client/RowVersion.java
diff --git a/src/com/google/gwtorm/client/Schema.java b/src/main/java/com/google/gwtorm/client/Schema.java
similarity index 100%
rename from src/com/google/gwtorm/client/Schema.java
rename to src/main/java/com/google/gwtorm/client/Schema.java
diff --git a/src/com/google/gwtorm/client/SchemaFactory.java b/src/main/java/com/google/gwtorm/client/SchemaFactory.java
similarity index 100%
rename from src/com/google/gwtorm/client/SchemaFactory.java
rename to src/main/java/com/google/gwtorm/client/SchemaFactory.java
diff --git a/src/com/google/gwtorm/client/SecondaryKey.java b/src/main/java/com/google/gwtorm/client/SecondaryKey.java
similarity index 100%
rename from src/com/google/gwtorm/client/SecondaryKey.java
rename to src/main/java/com/google/gwtorm/client/SecondaryKey.java
diff --git a/src/com/google/gwtorm/client/Sequence.java b/src/main/java/com/google/gwtorm/client/Sequence.java
similarity index 100%
rename from src/com/google/gwtorm/client/Sequence.java
rename to src/main/java/com/google/gwtorm/client/Sequence.java
diff --git a/src/com/google/gwtorm/client/StringKey.java b/src/main/java/com/google/gwtorm/client/StringKey.java
similarity index 100%
rename from src/com/google/gwtorm/client/StringKey.java
rename to src/main/java/com/google/gwtorm/client/StringKey.java
diff --git a/src/com/google/gwtorm/client/Transaction.java b/src/main/java/com/google/gwtorm/client/Transaction.java
similarity index 100%
rename from src/com/google/gwtorm/client/Transaction.java
rename to src/main/java/com/google/gwtorm/client/Transaction.java
diff --git a/src/com/google/gwtorm/client/impl/AbstractAccess.java b/src/main/java/com/google/gwtorm/client/impl/AbstractAccess.java
similarity index 100%
rename from src/com/google/gwtorm/client/impl/AbstractAccess.java
rename to src/main/java/com/google/gwtorm/client/impl/AbstractAccess.java
diff --git a/src/com/google/gwtorm/client/impl/AbstractTransaction.java b/src/main/java/com/google/gwtorm/client/impl/AbstractTransaction.java
similarity index 100%
rename from src/com/google/gwtorm/client/impl/AbstractTransaction.java
rename to src/main/java/com/google/gwtorm/client/impl/AbstractTransaction.java
diff --git a/src/com/google/gwtorm/client/impl/ListResultSet.java b/src/main/java/com/google/gwtorm/client/impl/ListResultSet.java
similarity index 100%
rename from src/com/google/gwtorm/client/impl/ListResultSet.java
rename to src/main/java/com/google/gwtorm/client/impl/ListResultSet.java
diff --git a/src/com/google/gwtorm/jdbc/AbstractSchemaFactory.java b/src/main/java/com/google/gwtorm/jdbc/AbstractSchemaFactory.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/AbstractSchemaFactory.java
rename to src/main/java/com/google/gwtorm/jdbc/AbstractSchemaFactory.java
diff --git a/src/com/google/gwtorm/jdbc/Database.java b/src/main/java/com/google/gwtorm/jdbc/Database.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/Database.java
rename to src/main/java/com/google/gwtorm/jdbc/Database.java
diff --git a/src/com/google/gwtorm/jdbc/JdbcAccess.java b/src/main/java/com/google/gwtorm/jdbc/JdbcAccess.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/JdbcAccess.java
rename to src/main/java/com/google/gwtorm/jdbc/JdbcAccess.java
diff --git a/src/com/google/gwtorm/jdbc/JdbcSchema.java b/src/main/java/com/google/gwtorm/jdbc/JdbcSchema.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/JdbcSchema.java
rename to src/main/java/com/google/gwtorm/jdbc/JdbcSchema.java
diff --git a/src/com/google/gwtorm/jdbc/JdbcTransaction.java b/src/main/java/com/google/gwtorm/jdbc/JdbcTransaction.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/JdbcTransaction.java
rename to src/main/java/com/google/gwtorm/jdbc/JdbcTransaction.java
diff --git a/src/com/google/gwtorm/jdbc/SimpleDataSource.java b/src/main/java/com/google/gwtorm/jdbc/SimpleDataSource.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/SimpleDataSource.java
rename to src/main/java/com/google/gwtorm/jdbc/SimpleDataSource.java
diff --git a/src/com/google/gwtorm/jdbc/gen/AccessGen.java b/src/main/java/com/google/gwtorm/jdbc/gen/AccessGen.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/gen/AccessGen.java
rename to src/main/java/com/google/gwtorm/jdbc/gen/AccessGen.java
diff --git a/src/com/google/gwtorm/jdbc/gen/CodeGenSupport.java b/src/main/java/com/google/gwtorm/jdbc/gen/CodeGenSupport.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/gen/CodeGenSupport.java
rename to src/main/java/com/google/gwtorm/jdbc/gen/CodeGenSupport.java
diff --git a/src/com/google/gwtorm/jdbc/gen/GeneratedClassLoader.java b/src/main/java/com/google/gwtorm/jdbc/gen/GeneratedClassLoader.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/gen/GeneratedClassLoader.java
rename to src/main/java/com/google/gwtorm/jdbc/gen/GeneratedClassLoader.java
diff --git a/src/com/google/gwtorm/jdbc/gen/SchemaFactoryGen.java b/src/main/java/com/google/gwtorm/jdbc/gen/SchemaFactoryGen.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/gen/SchemaFactoryGen.java
rename to src/main/java/com/google/gwtorm/jdbc/gen/SchemaFactoryGen.java
diff --git a/src/com/google/gwtorm/jdbc/gen/SchemaGen.java b/src/main/java/com/google/gwtorm/jdbc/gen/SchemaGen.java
similarity index 100%
rename from src/com/google/gwtorm/jdbc/gen/SchemaGen.java
rename to src/main/java/com/google/gwtorm/jdbc/gen/SchemaGen.java
diff --git a/src/com/google/gwtorm/rebind/AccessCreator.java b/src/main/java/com/google/gwtorm/rebind/AccessCreator.java
similarity index 100%
rename from src/com/google/gwtorm/rebind/AccessCreator.java
rename to src/main/java/com/google/gwtorm/rebind/AccessCreator.java
diff --git a/src/com/google/gwtorm/rebind/DataAccessGenerator.java b/src/main/java/com/google/gwtorm/rebind/DataAccessGenerator.java
similarity index 100%
rename from src/com/google/gwtorm/rebind/DataAccessGenerator.java
rename to src/main/java/com/google/gwtorm/rebind/DataAccessGenerator.java
diff --git a/src/com/google/gwtorm/schema/ColumnModel.java b/src/main/java/com/google/gwtorm/schema/ColumnModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/ColumnModel.java
rename to src/main/java/com/google/gwtorm/schema/ColumnModel.java
diff --git a/src/com/google/gwtorm/schema/KeyModel.java b/src/main/java/com/google/gwtorm/schema/KeyModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/KeyModel.java
rename to src/main/java/com/google/gwtorm/schema/KeyModel.java
diff --git a/src/com/google/gwtorm/schema/QueryModel.java b/src/main/java/com/google/gwtorm/schema/QueryModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/QueryModel.java
rename to src/main/java/com/google/gwtorm/schema/QueryModel.java
diff --git a/src/com/google/gwtorm/schema/QueryParseException.java b/src/main/java/com/google/gwtorm/schema/QueryParseException.java
similarity index 100%
rename from src/com/google/gwtorm/schema/QueryParseException.java
rename to src/main/java/com/google/gwtorm/schema/QueryParseException.java
diff --git a/src/com/google/gwtorm/schema/QueryParseInternalException.java b/src/main/java/com/google/gwtorm/schema/QueryParseInternalException.java
similarity index 100%
rename from src/com/google/gwtorm/schema/QueryParseInternalException.java
rename to src/main/java/com/google/gwtorm/schema/QueryParseInternalException.java
diff --git a/src/com/google/gwtorm/schema/RelationModel.java b/src/main/java/com/google/gwtorm/schema/RelationModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/RelationModel.java
rename to src/main/java/com/google/gwtorm/schema/RelationModel.java
diff --git a/src/com/google/gwtorm/schema/SchemaModel.java b/src/main/java/com/google/gwtorm/schema/SchemaModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/SchemaModel.java
rename to src/main/java/com/google/gwtorm/schema/SchemaModel.java
diff --git a/src/com/google/gwtorm/schema/SequenceModel.java b/src/main/java/com/google/gwtorm/schema/SequenceModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/SequenceModel.java
rename to src/main/java/com/google/gwtorm/schema/SequenceModel.java
diff --git a/src/com/google/gwtorm/schema/Util.java b/src/main/java/com/google/gwtorm/schema/Util.java
similarity index 100%
rename from src/com/google/gwtorm/schema/Util.java
rename to src/main/java/com/google/gwtorm/schema/Util.java
diff --git a/src/com/google/gwtorm/schema/gwt/GwtColumnModel.java b/src/main/java/com/google/gwtorm/schema/gwt/GwtColumnModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/gwt/GwtColumnModel.java
rename to src/main/java/com/google/gwtorm/schema/gwt/GwtColumnModel.java
diff --git a/src/com/google/gwtorm/schema/gwt/GwtRelationModel.java b/src/main/java/com/google/gwtorm/schema/gwt/GwtRelationModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/gwt/GwtRelationModel.java
rename to src/main/java/com/google/gwtorm/schema/gwt/GwtRelationModel.java
diff --git a/src/com/google/gwtorm/schema/gwt/GwtSchemaModel.java b/src/main/java/com/google/gwtorm/schema/gwt/GwtSchemaModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/gwt/GwtSchemaModel.java
rename to src/main/java/com/google/gwtorm/schema/gwt/GwtSchemaModel.java
diff --git a/src/com/google/gwtorm/schema/java/JavaColumnModel.java b/src/main/java/com/google/gwtorm/schema/java/JavaColumnModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/java/JavaColumnModel.java
rename to src/main/java/com/google/gwtorm/schema/java/JavaColumnModel.java
diff --git a/src/com/google/gwtorm/schema/java/JavaRelationModel.java b/src/main/java/com/google/gwtorm/schema/java/JavaRelationModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/java/JavaRelationModel.java
rename to src/main/java/com/google/gwtorm/schema/java/JavaRelationModel.java
diff --git a/src/com/google/gwtorm/schema/java/JavaSchemaModel.java b/src/main/java/com/google/gwtorm/schema/java/JavaSchemaModel.java
similarity index 100%
rename from src/com/google/gwtorm/schema/java/JavaSchemaModel.java
rename to src/main/java/com/google/gwtorm/schema/java/JavaSchemaModel.java
diff --git a/src/com/google/gwtorm/schema/sql/DialectH2.java b/src/main/java/com/google/gwtorm/schema/sql/DialectH2.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/DialectH2.java
rename to src/main/java/com/google/gwtorm/schema/sql/DialectH2.java
diff --git a/src/com/google/gwtorm/schema/sql/DialectPostgreSQL.java b/src/main/java/com/google/gwtorm/schema/sql/DialectPostgreSQL.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/DialectPostgreSQL.java
rename to src/main/java/com/google/gwtorm/schema/sql/DialectPostgreSQL.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlBooleanTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlBooleanTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlBooleanTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlBooleanTypeInfo.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlByteArrayTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlByteArrayTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlByteArrayTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlByteArrayTypeInfo.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlCharTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlCharTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlCharTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlCharTypeInfo.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlDateTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlDateTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlDateTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlDateTypeInfo.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlDialect.java b/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlDialect.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlIntTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlIntTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlIntTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlIntTypeInfo.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlLongTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlLongTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlLongTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlLongTypeInfo.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlShortTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlShortTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlShortTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlShortTypeInfo.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlStringTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlStringTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlStringTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlStringTypeInfo.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlTimestampTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlTimestampTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlTimestampTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlTimestampTypeInfo.java
diff --git a/src/com/google/gwtorm/schema/sql/SqlTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlTypeInfo.java
similarity index 100%
rename from src/com/google/gwtorm/schema/sql/SqlTypeInfo.java
rename to src/main/java/com/google/gwtorm/schema/sql/SqlTypeInfo.java
diff --git a/test/com/google/gwtorm/client/IntKeyTestCase.java b/src/test/java/com/google/gwtorm/client/IntKeyTestCase.java
similarity index 100%
rename from test/com/google/gwtorm/client/IntKeyTestCase.java
rename to src/test/java/com/google/gwtorm/client/IntKeyTestCase.java
diff --git a/test/com/google/gwtorm/client/LongKeyTestCase.java b/src/test/java/com/google/gwtorm/client/LongKeyTestCase.java
similarity index 100%
rename from test/com/google/gwtorm/client/LongKeyTestCase.java
rename to src/test/java/com/google/gwtorm/client/LongKeyTestCase.java
diff --git a/test/com/google/gwtorm/client/StringKeyTestCase.java b/src/test/java/com/google/gwtorm/client/StringKeyTestCase.java
similarity index 100%
rename from test/com/google/gwtorm/client/StringKeyTestCase.java
rename to src/test/java/com/google/gwtorm/client/StringKeyTestCase.java
diff --git a/test/com/google/gwtorm/data/AddressAccess.java b/src/test/java/com/google/gwtorm/data/AddressAccess.java
similarity index 100%
rename from test/com/google/gwtorm/data/AddressAccess.java
rename to src/test/java/com/google/gwtorm/data/AddressAccess.java
diff --git a/test/com/google/gwtorm/data/PersonAccess.java b/src/test/java/com/google/gwtorm/data/PersonAccess.java
similarity index 100%
rename from test/com/google/gwtorm/data/PersonAccess.java
rename to src/test/java/com/google/gwtorm/data/PersonAccess.java
diff --git a/test/com/google/gwtorm/data/PhoneBookDb.java b/src/test/java/com/google/gwtorm/data/PhoneBookDb.java
similarity index 100%
rename from test/com/google/gwtorm/data/PhoneBookDb.java
rename to src/test/java/com/google/gwtorm/data/PhoneBookDb.java
diff --git a/test/com/google/gwtorm/data/TestAddress.java b/src/test/java/com/google/gwtorm/data/TestAddress.java
similarity index 100%
rename from test/com/google/gwtorm/data/TestAddress.java
rename to src/test/java/com/google/gwtorm/data/TestAddress.java
diff --git a/test/com/google/gwtorm/data/TestPerson.java b/src/test/java/com/google/gwtorm/data/TestPerson.java
similarity index 94%
rename from test/com/google/gwtorm/data/TestPerson.java
rename to src/test/java/com/google/gwtorm/data/TestPerson.java
index 7cce083..e130d0b 100644
--- a/test/com/google/gwtorm/data/TestPerson.java
+++ b/src/test/java/com/google/gwtorm/data/TestPerson.java
@@ -19,7 +19,7 @@
 
 
 public class TestPerson {
-  public static class Key extends StringKey {
+  public static class Key extends StringKey<com.google.gwtorm.client.Key<?>> {
     @Column(length = 20)
     protected String name;
 
diff --git a/test/com/google/gwtorm/schema/QueryParserTest.java b/src/test/java/com/google/gwtorm/schema/QueryParserTest.java
similarity index 100%
rename from test/com/google/gwtorm/schema/QueryParserTest.java
rename to src/test/java/com/google/gwtorm/schema/QueryParserTest.java
diff --git a/test/com/google/gwtorm/schema/UtilTestCase.java b/src/test/java/com/google/gwtorm/schema/UtilTestCase.java
similarity index 100%
rename from test/com/google/gwtorm/schema/UtilTestCase.java
rename to src/test/java/com/google/gwtorm/schema/UtilTestCase.java
diff --git a/test/com/google/gwtorm/server/PhoneBookDbTestCase.java b/src/test/java/com/google/gwtorm/server/PhoneBookDbTestCase.java
similarity index 100%
rename from test/com/google/gwtorm/server/PhoneBookDbTestCase.java
rename to src/test/java/com/google/gwtorm/server/PhoneBookDbTestCase.java
diff --git a/test/com/google/gwtorm/server/PrintCreateTablesTestCase.java b/src/test/java/com/google/gwtorm/server/PrintCreateTablesTestCase.java
similarity index 100%
rename from test/com/google/gwtorm/server/PrintCreateTablesTestCase.java
rename to src/test/java/com/google/gwtorm/server/PrintCreateTablesTestCase.java
